题目:按照如下方式从中取糖果:
1
1
1 个
1
1
1 个地取,正好取完。
2
2
2 个
2
2
2 个地取,还剩
1
1
1 个。
3
3
3 个
3
3
3 个地取,正好取完。
4
4
4 个
4
4
4 个地取,还剩
1
1
1 个。
5
5
5 个
5
5
5 个地取,还差
1
1
1 个。
6
6
6 个
6
6
6 个地取,还剩
3
3
3 个。
7
7
7 个
7
7
7 个地取,正好取完。
8
8
8 个
8
8
8 个地取,还剩
1
1
1 个。
9
9
9 个
9
9
9 个地取,正好取完。请问:这个盒子里一共有多少个糖果?
分析:
1->是个整数
2->是个奇数
3->3的倍数
4->该数除以4余1
5->除以5余4
6->除以6余3
7->7的倍数
8->除以8余1
9->9的倍数
该数至少大于等于9
根据 是7、9的倍数 和 是个奇数判断,可以判断该数从以下数列中选取63、189······
用C++写一下
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
int i;
for(i=63;;i+=126){
if(i%4==1&&(i+1)%5==0&&i%6==3&&i%8==1){
printf("%d",i);
break;
}
}
return 0;
}
//answer:1449
用Python写一下,似乎比C++简单
#写的时候才知道python中的并与或是and、or
num = 63
while num > 0:
if num % 4 == 1 and (num+1) % 5 == 0 and num % 6 == 3 and num % 8 == 1:
print(num)
break
else:
num = num+126
最终用 P y t h o n Python Python输出答案 1449 1449 1449.
print("There are {} candies in this box.".format(1449))
print(f"There are {1449} candies in this box.")
print("There are %s candies in this box." % 1449)