1.试题A:求和。
本题总分:5分
【问题描述】
小明对数位中含有 2、0、1、9 的数字很感兴趣,在 1 到 40 中这样的数包 括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574。
请问,在 1 到 2019 中,所有这样的数的和是多少?
#include <stdio.h>
int main()
{
int i, c, temp;
int sum= 0;
for(i= 1; i<= 2019; i++)
{
temp= i;
while(temp!= 0)
{
c= temp% 10;
if(c== 1||c== 2||c== 0||c== 9)
{
sum+= i;
temp= 0;
break;
}
else
{
temp= temp/ 10;
}
}
}
printf("%d", sum);
return 0;
}
输出结果为1905111
2.试题B:矩形切割
本题总分:5 分
【问题描述】
小明有一些矩形的材料,他要从这些矩形材料中切割出一些正方形。
当他面对一块矩形材料时,他总是从中间切割一刀,切出一块最大的正方 形,剩下一块矩形,然后再切割剩下的矩形材料,直到全部切为正方形为止。
例如,对于一块两边分别为 5 和 3 的材料(记为 5×3),小明会依次切出 3×3、2×2、1×1、1×1 共 4 个正