❶ c++编程算所有的玫瑰花数,求高手代码改正。给我的答案要是代码的

C++ 中有 ^ 这个运算符吗?
下面为我写的代码,用i, j, k, l 分别表示千位、百位、十位、个位上的数字:
#include <iostream>
#include <cstdlib>
using namespace std;
inline int pow4(int i)
{
return i*i*i*i;
}
int main()
{
for (int i=1; i<10; i++)
for (int j=0; j<10; j++)
for (int k=0; k<10; k++)
for (int l=0; l<10; l++)
if (pow4(i)+pow4(j)+pow4(k)+pow4(l)== i*1000+j*100+k*10+l) {
cout<<i<<j<<k<<l<<"\t";
}
return 0;
}

运行结果为1634 8208 9474

❷ 编程,计算所有的玫瑰花数的和,并计算它们的平均值。 要求,求和时,打印出具体的表达式。

如果抄一个四位数等于它的每一位数字的4次方之和,则称这个四位数为玫瑰花数,例如:8208

# include "stdio.h"
void main()
{
int a,b,c,d,num,count=0;
long sum=0;
for(a=1;a<9;a++)
for(b=0;b<9;b++)
for(c=0;c<9;c++)
for(d=0;d<9;d++)
{
num=a*1000+b*100+c*10+d;
if(num==a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d)
{
count++;
sum+=num;
if(count>1)printf("+");
printf("%d",num);
}
}
printf("=%d\n平均值=%f\n",sum,sum*1.0/count);
}

运行结果:
1634+8208=9842
平均值=4921.000000