分析题目
1个1个拿,正好拿完。这个是废话 不用管
2个2个拿,还剩1个。奇数
3个3个拿,正好拿完。3的倍数
4个4个拿,还剩1个。模除4余1
5个5个拿,还差1个。模除5余4
6个6个拿,还剩3个。模除6余3
7个7个拿,正好拿完。7的倍数
8个8个拿,还剩1个。模除8余1
9个9个拿,正好拿完。9的倍数。
于是 综合起来就是 63的奇数倍,模除4余1,模除5余4,模除6余3,模除8余1
遍历。
#include
int main()
{
int i,j;
for(i = 1; ;i += 2)
{
j = i*63;
if(j%4==1 && j%5 == 4 && j %6==3 && j%8==1)
break;
}
printf("%d\n",j);
return 0;
}
计算结果 1449个
#include
int main(void)
{
int a;
for (a = 0;a < 1000;a++)
if (a % 1 == 0 && a % 2 == 1 && a % 3 == 0 && a % 4 == 1 && a % 5 == 1 && a % 6 == 3 && a % 7 == 0 && a % 8 == 1 && a % 9 == 0) {
printf("%d\n", a);
break;
}
return 0;
}
用for循环测试:
for(i = 1; i <= 自己设定; i++)
if(i%2==1 && i%3==0 && i%4==1 && i%5==4 && i%6==3 && i%7==0 && i%8==1 && i%9==0)
print i
其中i%5差1表示余数为4
369个