这是蓝桥杯2019的真题,算是简单的一道题,对我来说不太简单....
为了想证明题目有可能出错,所以我把前四十个列了出来发现真的有28个...好吧题目没错
思路就是循环,从1到2019,找出其中包含2,0,1,9的数字,再用pow函数求平方相加就行了
结果就是这个:
一定要注意用longlong定义sum,不然太长了会变成负数!
while(n),表示while 中值为真时,进行循环。 括号中是n,及n为非零时为真
#include"stdio.h"
#include<math.h>
int check(int n)
{
int i;
while (n)
{
i = n % 10;
if (i == 2 || i == 0 || i == 1 || i == 9)
return 1;
n /= 10;
}
return 0;
}
int main(void)
{
int i;
long long sum=0;
for (i = 1; i <= 2019; i++)
{
if (check(i) == 1)
{
sum += pow(i, 2);
}
}
printf("%lld", sum);
}