描述:一群人围坐成一圈玩报数的游戏
游戏规则屋:从1开始报数,若遇到7的倍或者个位为7的数击拿代替,若犯错则受范
可是这些人都太了,竟然没人犯错
请问样聪明的你,现在当报数到N(0<N<=10^7)时击共次数是多少?
1. #include<bits/stdc++.h>
2. using namespace std;
3. int pd(int kk)//自定义函数判断各位为七
4. {
5. while(kk>0)
6. {
7. if(kk%10==7)
8. return 1;
9. kk=kk/10;
10. }
11. return 0;
12. }
13. int main()
14. {
15. int n,sum=0,k=1; //用sum来统计符合条件的个数
16. cin>>n;
17. while(k<=n)
18. {
19. if(k%7==0)//判断7的倍数
20. sum++;
21. else if(pd(k)==1)
22. sum++;
23. k++;
24. }
25. cout<<sum<<endl;
26. return 0;}
用%10找余数为7的数,就能找到各位是7的数。用%7就可以找到7的倍数。可以在if里面||来选择,也可以自定义函数来找到,再定义一个变量每次找到加1。