问题是求从1到2019所有包含2、0、1、9的数字的平方和
你这个用string做方便。
然后atoi再做计算。
不然用百分号写的很累。
bool contains(char arrs[] , char a) {
char* p = arrs;
bool flag = false;
while (*p!= '\0') {
if (*p == a) {
flag = true;
break;
}
else {
p++;
continue;
}
}
return flag;
}
int main() {
long long sum = 0;
char arrs[5];
for (int i = 1; i <= 2019; i++) {
sprintf(arrs, "%d", i);
if (contains(arrs, '2') || contains(arrs, '0') || contains(arrs, '1') || contains(arrs, '9')){
sum += i * i;
}
}
printf("%lld", sum);
}