蓝桥杯 第五届 Javac组第五题 位平方和


把一个整数的每个数位都平方后求和,又得到一个整数,我们称这个整数为:位平方和。

对新得到的整数仍然可以继续这一运算过程。

比如,给定整数为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);
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_43394352/article/details/87605349
今日推荐