把一个整数的每个数位都平方后求和,又得到一个整数,我们称这个整数为:位平方和。
对新得到的整数仍然可以继续这一运算过程。
比如,给定整数为4,则一系列的运算结果为:
16,37,58,89,....
本题的要求是,已知一个整数x,求第n步的运算结果。
数据格式要求:
输入,两个整数x n,中间以空格分开。表示求x的第n步位平方和。其中,x,n都大于0,且小于100000。
输出,一个整数,表示所求结果。
例如,
输入:
4 3
则程序应该输出:
58
再例如,
输入:
1314 10
则程序应该输出:
20
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
题说的非常清楚了~
但是再细里说说
两个整数 x和n
x就是当做初始数,n就是把x这个数每一位的平方加起来的次数,
就比如题上的4和3
4 第一次4*4=16 第二次1*1+6*6=37 第三次3*3+7*7=58;
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int x=sc.nextInt();
int n=sc.nextInt();
//循环n次
for (int i =0; i <n; i++) {
//把每一位都列出变量题上说了最大十万位
int ge=x%10;
int shi=x/10%10;
int bai=x/100%10;
int qian=x/1000%10;
int wan=x/10000%10;
int shiwan=x/100000%10;
//没循环一次加一次平方后的数
x=ge*ge+
shi*shi+
bai*bai+
qian*qian
+wan*wan
+shiwan*shiwan;
}
System.out.println(x);
}
}