12 条题解
-
1
代码如下图:
#include <iostream> using namespace std; int mian()//头文件 { int c=0;//把计数变量归零 for (int i=1;i<1000;i++) { if (i%10==3)//判断如果i的个位是3 { c++; } else if (i%100/10==3)//判断如果i的十位是3 { c++; } else if (i/100==3)//判断如果i的百位是3 { c++; } } cout << c;//输出c return 0; }
错误粗线!
被你发现了!
……
#include <iostream> using namespace std; int main()//头文件 { int c=0;//把计数变量归零 for (int i=1;i<1000;i++) { if (i%10==3)//判断如果i的个位是3 { c++; } else if (i%100/10==3)//判断如果i的十位是3 { c++; } else if (i/100==3)//判断如果i的百位是3 { c++; } } cout << c;//输出c return 0; }
-
1
这题稍微推理下,我们可以发现个规律 个位3时:十位,百位可以是0~9的任意数,即10x10种 十位3时:个位,百位可以是0~9的任意数,但个位3算过了,个位不能再为3,即10x9种 百位3时:个位,十位可以是0~9的任意数,但个,十位3算过了,个,十位不能再为3,即9x9种 相加即可 完美的避免了超时的困扰 上代码!
#include <iostream> using namespace std; int main(){ cout << ( 10*10+ //个位3 10*9+ //十位3,个位三已经算过,排除 9*9 //同上 );//也可以在草稿纸上算出来直接cout << 数; return 0 ; }
- 1
信息
- ID
- 57
- 时间
- 1000ms
- 内存
- 16MiB
- 难度
- 3
- 标签
- 递交数
- 342
- 已通过
- 178
- 上传者