From d342e352a5f924d1f528cfbdc5b7c95a77daccae Mon Sep 17 00:00:00 2001 From: DipuTs007 <14930404+diputs007@user.noreply.gitee.com> Date: Wed, 16 Apr 2025 10:54:35 +0000 Subject: [PATCH] =?UTF-8?q?=E5=BC=A0=E4=B8=80=E8=B1=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: DipuTs007 <14930404+diputs007@user.noreply.gitee.com> --- exercises/01_helloworld.c | 2 +- exercises/02_loop.c | 4 +++- exercises/03_nested_loops.c | 8 +++++++- exercises/04_prime_number.c | 15 ++++++++++++++- exercises/05_josephus_ring.c | 22 +++++++++++++++++++++- 5 files changed, 46 insertions(+), 5 deletions(-) diff --git a/exercises/01_helloworld.c b/exercises/01_helloworld.c index e610016..0bab63f 100644 --- a/exercises/01_helloworld.c +++ b/exercises/01_helloworld.c @@ -4,7 +4,7 @@ int main(){ // Print "Hello World!" to the console - + printf("Hello World!\n"); return 0; diff --git a/exercises/02_loop.c b/exercises/02_loop.c index 3e361e6..c3dfb28 100644 --- a/exercises/02_loop.c +++ b/exercises/02_loop.c @@ -8,6 +8,8 @@ int main(void) { //TODO - + for(int i=1;i<=10;i++){ + print("%d",i); + } return 0; } \ No newline at end of file diff --git a/exercises/03_nested_loops.c b/exercises/03_nested_loops.c index d80c690..05042a3 100644 --- a/exercises/03_nested_loops.c +++ b/exercises/03_nested_loops.c @@ -12,6 +12,12 @@ int main(void) { //TODO - + int i, j; + for (i = 1; i <= 9; i++) { + for (j = 1; j <= i; j++) { + printf("%d*%d=%d\t", j, i, i * j); + } + printf("\n"); + } return 0; } \ No newline at end of file diff --git a/exercises/04_prime_number.c b/exercises/04_prime_number.c index 28e3f5f..c0b0413 100644 --- a/exercises/04_prime_number.c +++ b/exercises/04_prime_number.c @@ -10,7 +10,20 @@ int main(void) for (i = 1; i <= 100; i++) { - //TODO + int is_prime = 1; // 假设当前数是素数 + if (i <= 1) { + is_prime = 0; // 小于等于1的数不是素数 + } else { + for (j = 2; j <= sqrt(i); j++) { + if (i % j == 0) { + is_prime = 0; // 如果能被整除,不是素数 + break; + } + } + } + if (is_prime) { + max = i; // 更新最大素数 + } } printf("max = %d\n", max); diff --git a/exercises/05_josephus_ring.c b/exercises/05_josephus_ring.c index 330f204..7649323 100644 --- a/exercises/05_josephus_ring.c +++ b/exercises/05_josephus_ring.c @@ -22,7 +22,27 @@ int main(void) int step; /* 当前报数 */ //TODO - + // 初始化人员编号 + for (int i = 0; i < ALL_NUM; i++) { + people[i] = i + 1; + } + + left = ALL_NUM; + pos = 0; + step = 0; + + while (left > 0) { + if (people[pos] != 0) { + step++; + if (step == COUNT_NUM) { + printf("%d out \n", people[pos]); + people[pos] = 0; // 标记该人已被淘汰 + step = 0; + left--; + } + } + pos = (pos + 1) % ALL_NUM; + } return 0; -- Gitee