國(guó)外 上海網(wǎng)站建設(shè)google搜索網(wǎng)址
題目描述
卡卡西要過(guò) 10 歲生日啦!今年,她特別想要一份與眾不同的禮物,那就是一條能在陽(yáng)光下發(fā)出五光十色耀眼光芒的水晶項(xiàng)鏈。她把這個(gè)想法告訴了媽媽。媽媽對(duì)卡卡西神秘的一笑,透露道:“鄰居芭比阿姨家有個(gè)后花園。她的花園里有很多漂亮的水晶珠??墒前疟劝⒁虖膩?lái)不會(huì)輕易讓人進(jìn)入她的后花園,你必須回答出她提出的問(wèn)題,才可以進(jìn)去采集水晶珠……”還沒(méi)等媽媽說(shuō)完,卡卡西已經(jīng)迫不及待的飛奔而去。她來(lái)到芭比阿姨家,說(shuō)明了來(lái)意,芭比阿姨樂(lè)呵呵的說(shuō):“卡卡西,如果你能回答出我的問(wèn)題,我可以讓你進(jìn)入我的水晶花園。我的問(wèn)題很簡(jiǎn)單,給你一個(gè)三位數(shù),你要對(duì)這個(gè)三位數(shù)的各位數(shù)字的 3 次方求和,然后再對(duì)求出的和中各位數(shù)字的 3 次方求和,如此一直繼續(xù)下去,判斷最后能否得到一個(gè)不再變化的固定值。如能得到一個(gè)固定值,就告訴我這個(gè)固定值;如果不能,則告訴我提示信息“error”。注意了,在求解過(guò)程中,若某一次求和得到的值超過(guò) 3 位數(shù),則取該數(shù)的低三位繼續(xù)往下運(yùn)算…… 例如:對(duì)于三位數(shù) 111,則第一次計(jì)算應(yīng)該是 1×1×1 + 1×1×1 + 1×1×1=3。第二次應(yīng)是 0×0×0 + 0×0×0 + 3×3×3=27。第三次應(yīng)是 0×0×0 + 2×2×2 + 7×7×7=351。第四次應(yīng)是 3×3×3 + 5×5×5 + 1×1×1=153。第五次應(yīng)是 1×1×1 + 5×5×5 + 3×3×3=153,與第四次結(jié)果重合,不再計(jì)算,輸出固定值 153?!庇H愛(ài)的小朋友們,你也來(lái)和卡卡西一起鍛煉一下思維吧。
輸入
一行,一個(gè)三位數(shù) N(100≤N≤999)。
輸出
一行,如能得到一個(gè)固定值,則輸出這個(gè)固定值;如 10000 次變化還沒(méi)找到,就輸出提示信息“error”。
樣例數(shù)據(jù)
輸入
樣例輸入1 111 樣例輸入2 253
輸出
樣例輸出1 153 樣例輸出2 error
數(shù)據(jù)范圍限制
40%的數(shù)據(jù) 100≤N≤500。 100%的數(shù)據(jù) 100≤N≤999。
代碼
#include<bits/stdc++.h>
using namespace std;
int main()
{int n,sum=0,ans;cin>>n;sum=ans=n;for(int i=1;i<=10000;i++)//控制循環(huán)次數(shù),以免死循環(huán){int a=ans/100%10;//百位(記得%10)int b=ans%100/10;//十位int c=ans%10;//個(gè)位ans=a*a*a+b*b*b+c*c*c;//更新ansif(sum==ans)//如果和sum相同{cout<<ans;//輸出return 0;//并結(jié)束程序}else sum=ans;//傳給sum}cout<<"error";//否則輸出errorreturn 0;
}