c玫瑰花程序
⑴ 用c语言编辑一个玫瑰花数(一个四位数,各个数字的4次方之和等于它本身,求出满足条件的所有四位数)的
输出是 1634 8208 9474
#include<stdio.h>
int rose(int digit) {
int n = digit;
int k=0;
int value = 0;
int sum = 0;
while(n>0) {
k = n % 10;
sum += k*k*k*k;
n /= 10;
}
if( sum == digit) {
return 1;
}
return 0;
}
int main()
{
int i;
int count = 0;
for(i=1000; i<=9999; i++) {
if (rose(i)) {
count++;
printf("%4d ", i);
}
}
getchar();
return 0;
}
⑵ C++程序 玫瑰花数
#include
<iostream>
#include
<cmath>
using
namespace
std;
void
getrosenum(int
lower,int
upper);
bool
isrosenum(int
n);
void
main()
{
int
upper,lower;
cout<<"请输入下界:"<<endl;
cin>>lower;
cout<<"请输入上界:"<<endl;
cin>>upper;
cout<<"所有玫瑰花数:"
getrosenum(lower,upper);
}
void
getrosenum(int
lower,int
upper)
{
if((lower<1000)||(upper>9999))
{
cout<<"上下界错误!"<<endl;
return;
}
for
(int
i=lower;i<=upper;i++)
{
if
(isrosenum(i))
{
cout<<i<<endl;
}
}
}
bool
isrosenum(int
n)
{
char
a[5]={'0'};//这里改一下就行了,不然会溢出
itoa(n,a,10);
int
sum=0;
for
(int
i=0;i<4;i++)
sum+=pow((double)(a[i]-48),4);
if
(n==sum)
return
true;
return
false;
}
⑶ c语言编写程序 水仙花数 玫瑰花数
1
#include <stdio.h>
#include <stdlib.h>
int flower(int n)
{
int i, j, k;
i = n % 10;
j = n / 10 % 10;
k = n / 100;
if (i*i*i + j*j*j + k*k*k == n)
return 1;
else
return 0;
}
int main(void)
{
int i;
for (i = 100; i < 1000; i++)
{
if (flower(i) == 1)
printf("%d ", i);
}
return 0;
}
2.
#include <stdio.h>
#include <stdlib.h>
int rose(int n)
{
int i, j, k,m;
i = n % 10;
j = n / 10 % 10;
k = n / 100%10;
m = n / 1000;
if (i*i*i*i + j*j*j*j + k*k*k*k+m*m*m*m == n)
return 1;
else
return 0;
}
int main(void)
{
int i;
for (i = 1000; i < 10000; i++)
{
if (rose(i) == 1)
printf("%d ", i);
}
return 0;
}
⑷ 输出1000到9999之间的四叶玫瑰数,用C语言的知识回答
#include<stdio.h>
intmain()
{
inti,j,t;
for(i=1000;i<10000;i++)
{
t=0;
for(j=i;j;j/=10)
t+=(j%10)*(j%10)*(j%10)*(j%10);
if(t==i)
printf("%d ",i);
}
}
Output:
1634
8208
9474
⑸ 为什么在网上下载的用c语言编写的玫瑰花程序 我用vc++6.0运行的时候,提
这个是tc专有的
说明原始程序
是用tc编写 编译的
用vs 或者vc都无法运行
你如果要用这个程序 需要针对vc进行修改
或者改用TC2.0
⑹ 27、写一个函数,判断某一个四位数是不是玫瑰花数 用C语言写
#include<stdio.h>
#include<math.h>
void main()
{
scanf("请输入任意一个千位数:%d",n);
int total=0;
int chushu=10000;
int x=n;
while(chushu!=1)
{
x=n%chushu;
total+=pow(x/(chushu/10),4);
chushu /= 10;
}
string result = total==n?"yes":"no";
printf(result);
}