C语言程序设计 -------数组与循环。

来源:百度知道 编辑:UC知道 时间:2024/05/17 04:37:39
题目:
17个人围坐一圈,顺序编号为1,2,3,…,17。现在从第一个人开始数起,每数到7时,这个人就从圈里出来,再从下一个数重新开始数1,2,…,7,数到第7的这个人也从圈里出来,直到全部17个人从圈里出来为此。例如,前面站出来的4个人是7,14,4和12。编程输出从圈里出来的人的顺序。

#include"stdio.h"
void main()
{int a[1000],i,k=0,sum=0;
for(i=0;i<17;i++)
a[i]=i+1;
printf("\n");
while(i>0)
{k++;
if(k>17)
k=k%17;
if(a[k-1]!=0)
sum++;
if(sum==7)
{printf(" %d",a[k-1]);
a[k-1]=0;
i--;
sum=0;
}
}
}

好难喔

josephus问题

以下是数组方法:
#include <iostream>
using namespace std;
void main()
{
const int num=17;
int interval;
int a[num];
for(int i=0; i<num; i++)
{
a[i]=i+1;
}
cout <<"please input the interval: ";
cin >>interval; //interval = 7
for(int i=0; i<num; i++)
{
cout <<a[i] <<",";
}
cout <<endl;

int k=1;
int p=-1;

while(1)
{
for(int j=0;j<inter