题目
思路
针对数字中包含特别数字的判断,有两种方法:
- int 转化为 string,使用 string 的 find 函数判断。
- 编写函数,使用循环除10求余即可。
这里必须需要注意下,在循环中的 i 必须使用 long ,否则 i * i * i 会溢出,导致结果错误。
代码
//1475:[蓝桥杯2019初赛]立方和
#include<bits/stdc++.h>
using namespace std;
bool judge(int num){
int tmp = num;
while(num){
tmp = num % 10;
if(tmp == 2 || tmp == 0 || tmp == 1 || tmp == 9){
return true;
}
num /= 10;
}
return false;
}
int main(){
long long sum = 0;
for(long i = 1; i <= 2019; i++){
if(judge(i)){
sum = sum + (i * i * i);
}
}
cout<<sum;
return 0;
}