问题描述
- 约瑟夫数学解法(从1开始报数的代码问题C++)
-
/*说明:网上的都是从0开始报数,所以他们的s=0输出是s+1.我是从1开始的,为什么输出错误呢?*/
#include
using namespace std;
int main()
{
int totalnumber;
cout<<""please input total and number:""< cin>>total>>number;
int s=1;//从1开始排序1.2.3...n.
for(int i=2;i<=total;i++)
s=(s+number)%i;
cout<<""The last one is: ""<<s<<endl;
return 0;
}
解决方案
解决方案二:
约瑟夫环算法设计
解决方案三:
http://blog.csdn.net/evankaka/article/details/38734849
两种方法
解决方案四: s=((s+number-1)%i)+1;
取模运算返回 0..(i-1)
,和你要求的范围 1..i
不符啊。
时间: 2024-09-27 14:54:30