做了一道做了一道do while水仙花题,但是一直报错报错,求解 真的很疑惑123456789
以下是一个使用C++编写的do-while循环实现的水仙花数判断程序:
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int num, originalNum, remainder, result = 0, n = 0;
cout << "请输入一个三位数:" << endl;
cin >> num;
originalNum = num;
do {
remainder = originalNum % 10;
result += pow(remainder, 3);
originalNum /= 10;
n++;
} while (originalNum != 0);
if (result == num) {
cout << num << " 是水仙花数。" << endl;
} else {
cout << num << " 不是水仙花数。" << endl;
}
return 0;
}
在这个程序中,我们首先要求用户输入一个三位数。然后,我们使用do-while循环来计算该数字是否是水仙花数。循环体中,我们首先计算输入数字的各个位上的数字,然后将这些数字的立方和与输入数字进行比较。如果它们相等,则输入数字是水仙花数,否则不是。最后,我们输出相应的结果。
你的代码贴出来啊
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int number, originalNumber, remainder, result = 0, n = 0;
cout << "请输入一个整数:";
cin >> number;
originalNumber = number;
// 计算数字的位数
while (originalNumber != 0) {
originalNumber /= 10;
n++;
}
originalNumber = number;
do {
remainder = originalNumber % 10;
result += pow(remainder, n);
originalNumber /= 10;
} while (originalNumber != 0);
if (result == number) {
cout << number << " 是水仙花数" << endl;
} else {
cout << number << " 不是水仙花数" << endl;
}
return 0;
}
【相关推荐】
int main()
{
int i = 1234;
int count = 0;//位数
for(int i = 1;i <= 999999;i++)
{
//求i为几位数
while(tmp != 0)
{
count++;
tmp = tmp/10;//123 12 1
}
return 0;
}