您的位置:首页 > 编程语言 > C语言/C++

Euler theorem 取余数统计 C++

2017-11-01 13:30 162 查看
有两个正整数a,b.现需要计算a mod b.但是b的值未知,只给出a的值,求不同的可能的求余结果个数.

.

例如:a=100

a……..b…….re(余数)

100…51…..49

100…52…..48

100…53…..47

100…54…..46

.

.

.

100…98…..2

100…99…..1

100…100…0

100…101…100

100…102…100

100…103…100

.

.

.

从例子可以看出a mod b的所有取值范围是0到a/2-1以及a自身(a为偶数),或0到a/2以及a自身(a为奇数).

.

若只考虑个数:

#include <iostream>
using namespace std;

int main()
{
int a;
while(cin>>a){
if(a%2==0)
cout<<a/2+1<<endl;
else
cout<<a/2+2<<endl;
}
return 0;
}


.

若还要算出每个余数分别是多少:

#include <iostream>
using namespace std;

int main()
{
int a;
cin>>a;
int n;
if(a%2==0)
n=a/2+1;
else
n=a/2+2;
int re
;
for(int i=0;i<=n-2;i++){
re[i]=i;
cout<<re[i]<<endl;
}
re[n-1]=a;
cout<<re[n-1];
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: