#include<iostream> using namespace std; int main(){ int num=0; for(int i=0;i<4000;i++){ int j=i; while(j){ if(j%10==1) { num++; break; } else j=j/10; } } cout<<num<<endl; return 0; }
把每一位取出来判断是不是1
计算方法,位从高到低,1_ _ _共有1000个数
_ 1_ _共有3*1*10*10
_ _1_ 共有3*9*1*10
___1共有3×9×9
总共1000+300+270+243=1813种
考试时犯迷糊把3当成2了,泪
时间: 2024-10-20 05:52:50