
正文
又见水仙花c语言函数 c语言水仙花数的解题思路
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
C语言 编写函数 水仙花数问题
我以前写过一个
public static int sxh() //水仙花数
{
int ge,shi,bai,total,mount=0;
System.out.println("满足条件的水仙花数:");
for(int k=100;k1000;k++)
{
bai=k/100;
shi=k%100/10;
ge=k%10;
total=(bai*bai*bai)+(shi*shi*shi)+(ge*ge*ge);
if(total==k)
{
System.out.print(" "+k);
mount++;
}
}
return mount;
}
n久没动过c语言了,也只能帮到这了
相关问答
Q1: “水仙花”的C语言编程方法
这是又见水仙花c语言函数我们书上又见水仙花c语言函数的一道题目:打印出100-999中所有的“水仙花数”
#includestdio.h
void
main()
{
int
i,j,k,n;
printf("水仙花数为:");
for(n=100;n1000;n++)
{
i=n/100;
/*分解出百位*/
j=n/10%10;
/*分解出十位*/
k=n%10;
/*分解出个位*/
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
printf("%d
",n);
}
}
Q2: 用c语言编写一个求水仙花数的函数,求3位正整数的全部水仙花数中的次大值。所谓水仙花数是指三
#include stdio.h
void main(){
int i,k,s=0,num=0;
for(i=999;i=100;i--)
{
k=i;
while(k)
{
s+=(k%10)*(k%10)*(k%10);
k/=10;
}
if(s==i) num++;
if(num==2) break;
s=0;
}
printf("%d",i);
}
Q3: C语言 函数多实例 求水仙花数
//求出所有水仙花数。
#include stdio.h
int main()
{
int x, y, z;
for(x=1; x=9; x++)
for(y=0; y=9; y++)
for(z=0; z=9; z++)
if((x*x*x+y*y*y+z*z*z)==(x*100+y*10+z))
printf("%d%d%d ", x, y, z);
return 0;
}
然后利用前面的输出:
#include stdio.h
int main()
{
int a[4]={153, 370, 371, 407}, m, n, i;
bool flag;
while(scanf("%d %d",m,n)!=EOF)
{
flag=1;
for(i=0; i4; i++)
{
if(a[i]ma[i]n)//这个地方我不知道是否可以是 if(a[i]=ma[i]=n),(不知道是开区间还是闭区间)
{
flag=0;
printf("%d ", a[i]);
}
}
if(flag)
{
printf("no");
}
putchar('\n');
}
return 0;
}
然后你的程序的问题起码是输出格式错误。因为你在输出一组数据的答案是都没有换行。
我们在主函数加入
freopen("test.3", "w", stdout);
输入样例数据:
查看记事本输出:
=====================================
楼主,不加freopen不容易看出输出格式错误。
特别是usaco这种,一个'\n'都是严格要求的。
Q4: “水仙花数”C语言程序
代码如下:
#include stdio.h
int main()
{
printf("输出水仙花数:\n");
int i=100;
for( ; i1000; i++){
int num_0 = i%10;
int num_1 = i/10%10;
int num_2 = i/10/10%10;
if(i==(num_0*num_0*num_0+num_1*num_1*num_1+num_2*num_2*num_2))
printf("%d\t", i);
}
return 0;
}
扩展资料:
自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。
n为1时,自幂数称为独身数。显然,0,1,2,3,4,5,6,7,8,9都是自幂数。
n为2时,没有自幂数。
n为3时,自幂数称为水仙花数,有4个:153,370,371,407;
n为4时,自幂数称为四叶玫瑰数,共有3个:1634,8208,9474;
n为5时,自幂数称为五角星数,共有3个:54748,92727,93084;
n为6时,自幂数称为六合数, 只有1个:548834;
n为7时,自幂数称为北斗七星数, 共有4个:1741725,4210818,9800817,9926315;
n为8时,自幂数称为八仙数, 共有3个:24678050,24678051,88593477;
n为9时,自幂数称为九九重阳数,共有4个:146511208,472335975,534494836,912985153;
n为10时,自幂数称为十全十美数,只有1个:4679307774。
参考资料:
百度百科——水仙花数
Q5: c语言编程调用函数求水仙花数
水仙花数是指一个 n 位数 ( n≥3 ),每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153)。
所以可以依次通过模除求得每个位上的值,然后做n次幂后相加,再判断是否与本身相等,从而得到是否为水仙花数的结论。
以求所有三位数水仙花数为例,代码如下,其它相似。
#includestdio.h
#includestdlib.h
#includestdbool.h
int cube(const int n){//计算立方。如果是四位则是四次方,以此类推。
return n*n*n;
}
int isNarcissistic(const int n){//计算是否为水仙花数。
int hundreds=n/100;//百位
int tens=n/10-hundreds*10;//十位
int ones=n%10;//个位
return cube(hundreds)+cube(tens)+cube(ones)==n;//如果相等,则为水仙花数。
}
int main(void){
int i;
for(i=100;i1000;++i){//对所有三位数判断。
if(isNarcissistic(i))//如果是则输出。
printf("%d\n",i);
}
return 0;
}
关于又见水仙花c语言函数和c语言水仙花数的解题思路的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







