while循环水仙花C++
时间: 2023-11-18 18:57:35 浏览: 86
while循环水仙花C++是一个判断一个三位数是否为水仙花数的程序,使用了while循环语句。在循环中,程序会从100开始逐个判断到999,判断每个三位数是否为水仙花数,如果是则输出该数是水仙花数。其中,水仙花数是指一个三位数,它的每个位上的数字的3次幂之和等于它本身。在这个程序中,使用了do-while循环语句,先执行一次循环体,再判断循环条件是否成立,如果成立则继续执行循环体,否则跳出循环。在循环体中,使用了if语句判断该三位数是否为水仙花数,如果是则输出该数是水仙花数。
相关问题
c++do while水仙花数
好的,以下是c do while循环判断水仙花数的代码:
```c
#include <stdio.h>
#include <math.h>
int main()
{
int n, sum, num;
printf("Input a number: ");
scanf("%d", &n);
num = n;
sum = 0;
do {
int digit = num % 10;
sum += pow(digit, 3);
num /= 10;
} while (num != 0);
if (sum == n) {
printf("%d is an Armstrong number.\n", n);
} else {
printf("%d is not an Armstrong number.\n", n);
}
return 0;
}
```
上述代码中,使用了do while循环来计算给定数是否为水仙花数。在循环中,先取出输入数的最后一位数字,将其立方后加入sum中,并将输入数除以10,重复此过程直到输入数变为0。最后判断sum是否等于输入数,若相等则说明输入数为水仙花数。
水仙花数c++语言程序
水仙花数是指一个三位数,它的各位数字的立方和等于该数本身。例如153就是一个水仙花数,因为1^3+5^3+3^3=153。下面是两个C++语言程序实现水仙花数的输出:
1.使用for循环实现:
#include <iostream>
using namespace std;
int main() {
int a=100,s,d,f;
for(a=100;a<1000;a++) {
s=a%10;//求出个位
d=(a/10)%10;//求出十位
f=a/100;//求出百位
if(a==s*s*s+d*d*d+f*f*f)
cout<<a<<" ";
}
cout<<endl;
return 0;
}
2.使用do-while循环实现:
#include<iostream>
#include<cmath>
using namespace std;
int main() {
int a, b, c, n;
cin >> n;
int x = 100;
do {
a = x % 10;//分离出个位
b = x / 10 % 10;//分离出十位
c = x / 100 % 10;//分离出百位
if (x == pow(a,3) + pow(b,3) + pow(c,3))//使用pow函数,需要头文件cmath
cout << x << " ";
x++;
} while (x <= n);
return 0;
}