>凡事网 导航

c语言,求水仙花数(三位数)。用do while?

2024-07-01m.fan-pin.com
~ 以下是使用 C 语言 do-while 循环来求解三位数中的水仙花数的代码:

```c
#include <stdio.h>
#include <math.h>

int main() {
int i = 100;
do {
int a = i / 100;
int b = i / 10 % 10;
int c = i % 10;
if (i == pow(a, 3) + pow(b, 3) + pow(c, 3)) {
printf("%d ", i);
}
i++;
} while (i < 1000);
return 0;
}
```

在上面的代码中,我们使用 do-while 循环来遍历三位数,然后对每个三位数进行水仙花数的判断。其中,使用了三个变量 `a`、`b`、`c` 分别表示当前数值的百位、十位、个位数字。然后判断该三位数是否等于各个数字的立方和,如果是,就打印该数值。

需要注意的是,在计算立方的时候需要使用 `pow` 函数,该函数需要引用 math.h 头文件。

示例输出:

```
153 370 371 407
```

希望这个代码可以帮助你实现你所需的功能。

水仙花数是指一个 n 位正整数(n ≥ 3),其各个位上数字的 n 次方之和等于它本身。例如,153 是一个水仙花数,因为 $1^3 + 5^3 + 3^3 = 153$。

以下是使用 do-while 循环求解三位数的水仙花数的 C 语言程序:

```c
#include <stdio.h>

int main() {
int num, digit, sum;
printf("三位数的水仙花数有:\n");
num = 100; // 从100开始枚举
do {
digit = num % 10; // 取出个位数字
sum = digit * digit * digit; // 计算各位数字的立方和
digit = num / 10 % 10; // 取出十位数字
sum += digit * digit * digit; // 加上十位数字的立方
digit = num / 100; // 取出百位数字
sum += digit * digit * digit; // 加上百位数字的立方
if (sum == num) { // 如果等于该数本身,输出该数
printf("%d\n", num);
}
num++;
} while (num < 1000); // 从100枚举到999
return 0;
}
```

在这个程序中,我们定义了一个整型变量 num 来作为循环计数器,初始值为 100。然后使用 do-while 循环来枚举所有的三位数。

对于每个数,我们依次取出它的各位数字,计算它们的立方和。如果立方和等于该数本身,则说明该数是一个水仙花数,将其输出。

最后,我们将 num 的值加 1,继续下一次循环,直到枚举完所有的三位数。

C语言,编程打印,1000以内所有的水仙花数,所谓水仙花数是指一个三位数...
include<stdio.h>void main(){ int i,j,k,n; for(i=1;i<10;i++) for(j=0;j<10;j++) for(k=0;k<10;k++) { n=i*100+j*10+k; if((i*100+j*10+k)==((i*i*i)+(j*j*j)+(k*k*k))) printf("水仙花数为:%d\\n",n); }} ...

“水仙花数”是指一个3位数,其各位数的立方和等于该数,编写程序,打印...
也可以直接用a、b、c三个循环搞定 '这个是VB Private Sub Form_Click()For a = 1 To 9 For b = 0 To 9 For c = 0 To 9 If a ^ 3 + b ^ 3 + c ^ 3 = 100 * a + 10 * b + c Then Print (100 * a + 10 * b + c)Next c Next b Next a End Sub 显示:153...

C语言用指针求水仙花数
您好,很高兴回答您的问题。水仙花数是指三位数每个位置上的数的立方之和,等于这个数本身。这个题目的难点就在于对这个三位数进行分解,得出每一个位置上的数字。

用C语言:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数...
include "stdio.h"include "math.h"void shuixianhua(){\/\/水仙花数 int i,m=3,sum,count=0,temp;printf("水仙花数:\\n");for(i=100;i<=999;i++){ temp=i;sum=0;while (temp){ sum+=(int)pow(temp%10,m);temp\/=10;} if (sum==i){ printf("%-5d ",i);if(++count%5==...

c语言水仙花数
if ((a*a*a + b*b*b + c*c*c) == i) \/\/满足水仙花条件 { if (size == 0) \/\/size=0输出第一个水仙花数 { printf("%d", i);} else \/\/size++输出第二。。第n个水仙花数 { printf(" %d", i);} size++; \/\/个数++;} } if (size == 0) \/\/范围内个...

c语言。。用if语句编程,输入一个三位数,判断是否是水仙花数。
1、严格的水仙花是三位数,并且其每位数的三次方的和等于它的本身。例子如下:370是一个严格的水仙花数,3^3+7^3+0^3=370.2、C 语言的"水仙花数"实现代码:include <stdio.h> include<math.h> int main (void) { long n,p;long c,a,j,s[30],i,q;p=0;a=10;scanf("%ld",&n);...

C语言:写一个判断水仙花数的函数,在主函数中输入一个3位的整数,输出其...
include<stdio.h> int isflower(int x) \/\/是 返回1,不是返回0.{ if(x<100 || x>999) \/\/不是三位数 { printf("Input error");return 0;} int a,b,c;a = x%10; \/\/ 个位上的数 b =x\/10%10; \/\/十位上的数 c = x\/100; \/\/百位上的数 if(a*a*a + b*b*b...

...的“水仙花数”。水仙花数是指一个三位数,它的各位数的
穷举法求水仙花数。用for循环来穷举每一个数。C++语言版:include<iostream> using namespace std;int main(){ int t=0,flag=0,m,n,temp,i,ge,shi,bai;while (cin>>m>>n){ t=0;if (m>n){ temp=n;n=m;m=temp;} for (i=m;i<=n;i++){ ge=i%10;shi=i\/10%10;bai=i\/10\/...

c语言编写水仙花数
再用如果a定义为1--9那么用100*a来表示百位;如果b或者c定义是0--9那么用10*b或者10*c来表示十位;那么下面用c或者b来表示个位;if(100*a+10*b+c==a*a*a+b*b+c) 如果满足这个条件那么:输出的printf("%d%d%d",a,b,c)就是3位数的水仙花数:4位水仙花数方法同上:刚写的:调试过...

c语言编程调用函数求水仙花数
水仙花数是指一个 n 位数 ( n≥3 ),每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153)。所以可以依次通过模除求得每个位上的值,然后做n次幂后相加,再判断是否与本身相等,从而得到是否为水仙花数的结论。以求所有三位数水仙花数为例,代码如下,其它相似。include...

相关链接2

返回顶部
凡事房车自主流
凡事网