题目描述
题目:n个数字(1,2,3…,n)形成一个圆圈,从数字1开始,每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。
当一个数字删除后,从被删除数字的下一个继续删除第m个数字。
求出在这个圆圈中剩下的最后一个数字。
输入
输入:
n=9
m=5
输出
The last one is 8
样例输入
9 5
样例输出
8
参考代码
#include<stdio.h>
int main()
{
int m,n,i,j,s;
scanf("%d %d",&n,&m);
int a[n];
for (i=0;i<n;i++)
a[i]=i+1;
i=-1;
for (j=0;j<n-1;j++)
{
s=0;
while(s<m)
{
i=(i+1)%n;
if(a[i]!=0)
s++;
}
a[i]=0;
}
for (j=0;j<n;j++)
{
if(a[j]!=0)
printf("%dn",a[j]);
}
return 0;
}
解析
暂无