首页 > 解决方案 > 找出前两位数字和后两位数字之和的平方等于数字本身的所有四位数字

问题描述

我的代码应该执行所有 4 位数字,前两位数字和最后两位数字之和的平方应该等于它自己的数字,但我的它什么也不做。我究竟做错了什么?

for (int i = 1000; i <= 9999; i++){
    int n = i;
    int remandier1, remandier2,finalanswer;
    double result1=0;
    while(n != 0){
        remandier1 = n % 100;
        remandier2 = n /100;
        finalanswer = remandier1 + remandier2;
        result1 = Math.pow(finalanswer, 2);
    }
    if (result1 == n){
        System.out.println(i);
    }
}

标签: javamathconditional-statements

解决方案


您正在使用基于n不同于 0 的循环,但n在循环期间从未修改过。循环如何真正停止..循环?可能是我遗漏了一些东西,但正如我所见,n它将永远等于i.

while(n != 0)
{
    remandier1 = n % 100;
    remandier2 = n /100;
    finalanswer = remandier1 + remandier2;
    result1 = Math.pow(finalanswer, 2);
    // add something to stop the loop
    n = n - 1; // for example
}

推荐阅读