解题思路:
开一个两行数组,第二行标记该数是否已删除,删至只剩一个数时停止,
外层while循环里套for循环使数组转圈。
注意事项:
参考代码:
#include<stdio.h>
int main()
{
int arr[10001][2];
int n,i,j=0;
scanf("%d",&n);
for(i=1; i<=n; i++)
{
arr[i][0]=i;
arr[i][1]=1;
}
int k=0,flag=0;
while(1)
{
for(i=1; i<=n; i++)
{
if(arr[i][1]!=0)
{
k++;
if(k%3==0)
{
arr[i][1]=0;
flag++;
if(flag==n-1)
goto EE;
}
}
}
}
EE:
for(i=1; i<=n; i++)
{
if(arr[i][1]!=0)
{
printf("%d",i);
}
}
return 0;
}
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:605 |
C语言程序设计教程(第三版)课后习题12.6 (C语言代码)浏览:791 |
模拟计算器 (C语言代码)浏览:881 |
简单的a+b (C语言代码)浏览:759 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:937 |
C语言训练-求1+2!+3!+...+N!的和 (C语言代码)浏览:780 |
C语言程序设计教程(第三版)课后习题9.6 (C语言代码)浏览:575 |
星期判断机 (C语言代码)浏览:859 |
The 3n + 1 problem (C语言代码)浏览:501 |
Tom数 (C语言代码)浏览:552 |