1. 程式人生 > >藍橋杯題 位平方和

藍橋杯題 位平方和



把一個整數的每個數位都平方後求和,又得到一個整數,我們稱這個整數為:位平方和。


對新得到的整數仍然可以繼續這一運算過程。


比如,給定整數為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>, 不能通過工程設定而省略常用標頭檔案。


提交時,注意選擇所期望的編譯器型別。