java while循环定义一个正整数如:1205 统计它的各位数字中零的个数,并求各位数字中的最大者。
时间: 2024-05-06 07:16:51 浏览: 50
可以使用以下代码实现:
```java
int num = 1205;
int countZero = 0;
int maxDigit = 0;
while(num > 0) {
int digit = num % 10; // 取个位数
if(digit == 0) {
countZero++;
}
if(digit > maxDigit) {
maxDigit = digit;
}
num /= 10; // 去掉个位数
}
System.out.println("零的个数:" + countZero);
System.out.println("最大的数字:" + maxDigit);
```
输出结果为:
```
零的个数:1
最大的数字:5
```
相关问题
while循环定义一个正整数如:1205 统计它的各位数字中零的个数,并求各位数字中的最大者。
可以通过循环遍历每一位数字,来统计零的个数和求解最大值。
具体实现如下:
```
num = 1205
count_zero = 0
max_digit = 0
while num > 0:
digit = num % 10 # 取出个位数字
if digit == 0:
count_zero += 1
if digit > max_digit:
max_digit = digit
num = num // 10 # 把个位数字去掉,继续处理下一位数字
print("零的个数为:", count_zero)
print("最大值为:", max_digit)
```
输出结果为:
```
零的个数为: 1
最大值为: 5
```
C++代码 编一程序,统计从键盘输入的一个正整数中各位数字中零的个数,并求各位数字中最大者。例如:3090其零的个数是2,各位数字中最大者是9。
以下是 C++ 代码实现:
```cpp
#include <iostream>
using namespace std;
int main() {
int n, max_digit = 0, num_of_zeros = 0;
cout << "请输入一个正整数:";
cin >> n;
while (n > 0) {
int digit = n % 10;
if (digit == 0) {
num_of_zeros++;
}
if (digit > max_digit) {
max_digit = digit;
}
n /= 10;
}
cout << "零的个数:" << num_of_zeros << endl;
cout << "最大的数字:" << max_digit << endl;
return 0;
}
```
代码逻辑比较简单,主要是利用 while 循环和取模运算来逐个提取数字中的每一位。在循环中,如果当前位是 0,则零的个数加 1;如果当前位比之前的最大位还大,则更新最大位。最后输出结果即可。
阅读全文