藍橋杯題 位平方和
阿新 • • 發佈:2019-02-08
把一個整數的每個數位都平方後求和,又得到一個整數,我們稱這個整數為:位平方和。
對新得到的整數仍然可以繼續這一運算過程。
比如,給定整數為4,則一系列的運算結果為:
#include<stdio.h> int a[410]; int pingfanghe(int n) { int sum=0; int t=0; while(n) { t=n%10; sum+=t*t; n/=10; } return sum; } int main() { long x,n,temp; scanf("%ld%ld",&x,&n); while(n--) { x=pingfanghe(x); } printf("%ld\n",x); return 0; }
16,37,58,89,....
本題的要求是,已知一個整數x,求第n步的運算結果。
資料格式要求:
輸入,兩個整數x n,中間以空格分開。表示求x的第n步位平方和。其中,x,n都大於0,且小於100000。
輸出,一個整數,表示所求結果。
例如,
輸入:
4 3
則程式應該輸出:
58
再例如,
輸入:
1314 10
則程式應該輸出:
20
資源約定:
峰值記憶體消耗 < 256M
CPU消耗 < 1000ms
請嚴格按要求輸出,不要畫蛇添足地列印類似:“請您輸入...” 的多餘內容。
所有程式碼放在同一個原始檔中,除錯通過後,拷貝提交該原始碼。
注意: main函式需要返回0
注意: 只使用ANSI C/ANSI C++ 標準,不要呼叫依賴於編譯環境或作業系統的特殊函式。
注意: 所有依賴的函式必須明確地在原始檔中 #include <xxx>, 不能通過工程設定而省略常用標頭檔案。
提交時,注意選擇所期望的編譯器型別。