用JAVA求一个三位整数各个位数上的数字之和并返回在main,方法中调用改造法
时间: 2024-05-09 11:18:34 浏览: 12
以下是代码:
```
public class Main {
public static void main(String[] args) {
int num = 123;
int sum = getDigitSum(num);
System.out.println("The sum of digits in " + num + " is " + sum);
}
public static int getDigitSum(int num) {
int sum = 0;
while (num > 0) {
int digit = num % 10;
sum += digit;
num /= 10;
}
return sum;
}
}
```
在main方法中,我们定义了一个整数变量num,它的值是123。然后我们调用getDigitSum方法,将num作为参数传递给它,并将返回值存储在sum变量中。最后,我们在控制台上输出结果。
在getDigitSum方法中,我们使用了一个while循环来计算每个数字的和。首先,我们定义了一个sum变量,初始值为0。然后,我们使用模运算符来获取num的最后一位数字,并将其加到sum变量中。接下来,我们将num除以10,以便获取下一个数字。我们重复这个过程,直到num变成0。最后,我们返回sum变量的值。
相关问题
c语言利用函数的递归调用求一个整数各个位上数字的和
好的,C语言中也可以利用函数的递归调用来实现这个功能。下面是一个示例代码:
```c
#include <stdio.h>
int sum_digits(int n);
int main() {
int n;
printf("请输入一个整数:");
scanf("%d", &n);
printf("各位数字之和为:%d\n", sum_digits(n));
return 0;
}
int sum_digits(int n) {
if (n < 10) {
return n;
} else {
return n % 10 + sum_digits(n / 10);
}
}
```
这个程序中,sum_digits 函数实现了递归求解整数各个位上数字之和的功能。与 Python 版本的代码类似,它的思路也是先判断输入的整数 n 是否小于 10,如果是,则直接返回 n 作为结果;否则,将 n 的个位数加上剩余数位的和(通过递归调用 sum_digits 函数)作为结果返回。
不用main函数求出一个整数各位数之和
可以使用递归函数来实现,代码如下:
```
#include <stdio.h>
int sum(int n) {
if (n < 10) {
return n;
} else {
return n % 10 + sum(n / 10);
}
}
int main() {
int n;
printf("请输入一个整数:");
scanf("%d", &n);
printf("各位数之和为:%d\n", sum(n));
return ;
}
```
如果不使用main函数,可以将代码放在一个函数中,然后在程序中直接调用该函数即可。