import java.util.Scanner;
public class CubesSum {
public static void main (String [] args){
int input;
System.out.println("Enter a positive integer:");
Scanner in = new Scanner(System.in);
input = in.nextInt();
int number = input; //number is a temp variable
int sum = 0;
while(number>0){
int t= number%10;
sum += t*t*t;
number = number/10;
}
System.out.println("The sum of the cubes of the digits is:" +sum);
}
}
好的,我正在使用while循环。对于要修改的部分B,以确定两个,三个和四个数字的整数等于其数字的立方体的总和。例如,371 =3³+7³+1³。谁能告诉我怎么做?我需要在while循环中包装一个for循环...
答案 0 :(得分:1)
获取代码中计算数字数字的多维数据总和的部分,并将其作为函数:
int sumOfCubedDigits(int number) {
int sum = 0;
// compute sum from number
return sum;
}
然后,遍历所有2到4位数字并检查它们是否等于其数字立方体的总和:
for (int n = 10; n < 10000; n++) {
if (n == sumOfCubedDigits(n)) {
// do whatever with n
}
}
如果需要,你可以在for
循环中保持立方数位数的计算,但它的可读性会低一些。
好的,所以看起来你还没有学过函数定义。我不应该假设。我们先用嵌套循环来做。
正如您所说,您需要在for
周围包裹一个while
循环。我们需要考虑所有2到4位数字,所以我们的循环将从第一个2位数开始,到达第一个5位数时结束:
for (int n = 10; n < 10000; n++) {
// More code will go here.
}
在循环中,我们需要计算n
的立方数位的总和。您之前编写的用于计算的代码会修改其操作的数字,但我们无法修改n
,或者我们会搞砸for
循环。我们制作副本:
for (int n = 10; n < 10000; n++) {
int temp = n;
int sum = 0;
// Compute the sum of the digits of temp, much like you did before.
}
最后,如果总和等于n
,我们会做一些事情来表明它。假设您的作业要打印所有这些数字:
for (int n = 10; n < 10000; n++) {
int temp = n;
int sum = 0;
// Compute the sum of the digits of temp, much like you did before.
if (sum == n) {
System.out.println(n);
}
}
答案 1 :(得分:0)
对于任意整数i
,它是nth
数字dn
,(n = 1,最右边的数字)
dn = (i % (10^n)) / (10^(n-1)) // all integer operations
如您所见,您需要事先知道i
的位数,否则,是的,您需要一个循环
答案 2 :(得分:0)
public static void main(String [] args){
Scanner input = new Scanner(System.in);
System.out.print("Please enter number : ");
int num = input.nextInt();
int temp = num, remainder;
int sum = 0;
while(temp %10 != 0){
remainder = temp %10;
sum = sum+ remainder ;
temp = temp/10;
}
System.out.println("Sum of digit : " + sum);
=====输出====
请输入数字:123
数字总和:6