java-立方和

 

问题描述:
现给出一个三位数,先对这个三位数的各似数子的以力求和,然后再对求出的和中的各位数字的立方求和,如此一直继续下去,判断最后能否得到一个不再变化的固定值。
如能得到一个固定值,就求出这个固定值:如果不能,则输出呢示信息“error”。另外请注意,在求解过程中,若某次求和过程中得到的值超过三位数,则取该数的低三位
继续往下运算……

例如,对于三位数111,则第一次计算应是1×1×1+1X1×1+1X1×1=3,第二次计算应是0×0×0+0×0×0+3×3×3=27,第三次计算应是0x0×0+2×2X2+7×7X 7=351,
第四次计算应是3X3×3+5×5×5+1X1×1=153,第五次让算应是1×1×1+5×5×5+3×3×3=153,与第四次计算的结果相同,这时可不再计算,输出固定值153。
亲爱的同学,请你也来计算一下

输入格式:

只有一行,是一个三位数

输出格式:

也只有一行,如能得到固定值则输出这个固定值,如不能则输入错误提示信息“error”

输入样例:

111

输出样例:

153

 

 

 

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc =new Scanner(System.in);
        int a = sc.nextInt();
        List<Integer> list = new ArrayList<>();
        list.add(a);
        while(true){
//            判断是否成为一个固定值
            if(a == lifanghe(a)) {
                System.out.println(a);
                break;
            }
            else{
                a = lifanghe(a);
//                判断之前是否重复出现过
                if(list.contains(a)) {
                    System.out.println("error");
                    break;
                }
                list.add(a);
            }
        }
    }

//    取后三位数进行立方和
    public static int lifanghe(int x){
        int c = x%10;
        int b = x/10%10;
        int a = x/100%10;
        return (a*a*a+b*b*b+c*c*c);
    }
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值