69,368
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
main()
{
int a[100],count=0,i=12,j=12;
for(i=0;i<100;i++)
a[i]=1;
i=12;
do
{
if (a[i]==1) j++;
if (j%13==0)
{ printf("%4d",i+1);
a[i]=0;
count++;
}
i++;
if (i==100)
i=i-100;
}while(count!=100);
}
#include<stdio.h>
#define NUM 100
#define CNT 13
int main() {
int a[NUM], count = 0, i = 0, j = 0;
for(i=0;i<NUM;++i) a[i] = 1;
i = 0;
do{
// 已经出圈,跳过这个,继续循环,判断下标,需要就归零
if(a[i]==0){
i++;
if(i>=NUM) i = 0;
continue;
}
// 运行到这里说明没出圈,当前计数器加1
j++;
// 如果是第13个,打印出圈,标志归零,总计数器加1,当前计数器归零
if(j%CNT==0){
printf("%4d ",i+1);
a[i] = 0;
count++;
j = 0;
}
// 继续循环,判断下标,需要就归零
i++;
if(i>=NUM) i = 0;
}while(count<NUM);
return 0;
}
[/quote]
s = ''' 13
26
39
52
65
78
91
4
18
32
46
60
74
88
2
17
33
48
63
79
94
9
25
42
58
75
92
8
27
44
62
81
98
16
36
55
73
95
14
35
56
77
99
21
43
67
87
11
37
61
85
10
38
66
90
20
49
76
5
34
69
100
30
68
1
40
72
12
51
89
29
80
22
64
15
59
19
71
28
86
50
7
84
54
41
23
3
97
6
31
53
83
47
24
45
82
93
96
57
70 '''
print(len(set([int(line) for line in s.split('\n')]))==100)
#include<stdio.h>
#define NUM 100
#define CNT 13
int main() {
int a[NUM], count = 0, i = 0, j = 0;
for(i=0;i<NUM;++i) a[i] = 1;
i = 0;
do{
// 已经出圈,跳过这个,继续循环,判断下标,需要就归零
if(a[i]==0){
i++;
if(i>=NUM) i = 0;
continue;
}
// 运行到这里说明没出圈,当前计数器加1
j++;
// 如果是第13个,打印出圈,标志归零,总计数器加1,当前计数器归零
if(j%CNT==0){
printf("%4d ",i+1);
a[i] = 0;
count++;
j = 0;
}
// 继续循环,判断下标,需要就归零
i++;
if(i>=NUM) i = 0;
}while(count<NUM);
return 0;
}
[/quote]
程序运行后还是有很多重复的出圈数int main(){
int a[100] = {0},count = 100,curr = -1;
while (count) {
for(int i=0;i<13;++i){
do{
curr = (curr+1)%100;
}while(a[curr]);
}
a[curr] = 1;
printf("%d ", curr);
count--;
}
return 0;
}
#include<stdio.h>
#define NUM 100
#define CNT 13
int main() {
int a[NUM], count = 0, i = 0, j = 0;
for(i=0;i<NUM;++i) a[i] = 1;
i = 0;
do{
// 已经出圈,跳过这个,继续循环,判断下标,需要就归零
if(a[i]==0){
i++;
if(i>=NUM) i = 0;
continue;
}
// 运行到这里说明没出圈,当前计数器加1
j++;
// 如果是第13个,打印出圈,标志归零,总计数器加1,当前计数器归零
if(j%CNT==0){
printf("%4d ",i+1);
a[i] = 0;
count++;
j = 0;
}
// 继续循环,判断下标,需要就归零
i++;
if(i>=NUM) i = 0;
}while(count<NUM);
return 0;
}
#include <stdio.h>
int main()
{
int a[100], count = 0, i = 12, j = 12;
for (i = 0; i < 100; i++)
a[i] = 1;
i = 12;
do
{
if (a[i] == 1) {
j++;
if (j % 13 == 0)
{
printf("%4d", i + 1);
a[i] = 0;
count++;
}
}
i++;
if (i == 100)
i = i - 100;
} while (count != 100);
return 0;
}