【问题描述】
小明对数位中含有2、0、1、9的数字很感兴趣,在1到40中这样的数包括1、2、9、10至32、39和40,共28个,他们的和是574,平方和是14362,立方和是400816。请问,在1到2019中,所有这样的数的立方和是多少?
【源代码】
#include<stdio.h>
long long Cubic_sum = 0;//立方和
long long squares_sum = 0;//平方和
int sum = 0;//和
void fun(){
int num = 0;
int temp = 0;
for(long long i = 1;i <= 2019;i++){//遍历1~2019
num = i;
while(num > 0){//找出有数位有2,0,1,9的数字
temp = num % 10;
if(temp == 2 || temp == 0 || temp == 1 || temp == 9){
sum += i;
Cubic_sum += i*i*i;
squares_sum += i*i;
break;
}
else
num/=10;
}
}
}
int main(){
fun();
printf("1~2019中数位含有2,0,1,9的数之和:%d\n",sum);
printf("1~2019中数位含有2,0,1,9的数之平方和:%lld\n",squares_sum);
printf("1~2019中数位含有2,0,1,9的数之立方和:%lld\n",Cubic_sum);
return 0;
}