概述
对于任意两个正整数a,b(0<=a,b<10000)计算a b各位数字的和的各位数字的和的各位数字的和的各位数字的和。
Input
输入有多组数据,每组只有一行,包含两个正整数a,b。最后一组a=0,b=0表示输入结束,不需要处理。
Output
对于每组输入数据,输出ab各位数字的和的各位数字的和的各位数字的和的各位数字的和。
Sample Input
2 3
5 7
0 0
Sample Output
8
5
数论规律证明:
假设一个数的各位数字分别是a1,a2...an ,则
(a1a2...an)%9=(a1+a2+...+an)%9
证明:
令s=a1a2...an=a1*10^(n-1)+a2*10^(n-2)+...+an
=a1*(999..9+1)+a2*(99..9+1)+...+a(n-1)*(9+1)+an
=(a1*999..9+a2*999..9+...+a(n-1))+(a1+a2+...+an)
s%9=(a1+a2+...+an)%9
我是比赛时想到最后结果肯定只有一 位数,那莫只有9种可能,我就从9里找规律,但是上面的证明是赛后大佬们告诉我的。
这样我想大家应该懂了吧。
AC代码:
# include<cstdio>
#include<iostream>
#include<cmath>
using namespace std;
const double pi=acos(-1);
const double s=1000;
int main()
{
int a,b,k;
int i;
while(cin>>a>>b&&(a+b))
{
if(!a)
{
cout<<"0"<<endl;
continue;
}
if(!b)
{
cout<<"1"<<endl;
continue;
}
int ans=a;
int i=2;
while(i<=b)
{
ans*=a;
ans%=9;
i++;
}
if(ans==0)
ans=9;
printf("%dn",ans);
}
return 0;
}
最后
以上就是纯情铅笔为你收集整理的F a^b的全部内容,希望文章能够帮你解决F a^b所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复