40:数1的个数
#include <iostream>
using namespace std;
int main(){
int n,size=0;
cin >> n;
for(int i=1;i<=n;i++){
int n1=i%10,n2=i/10%10,
n3=i/10/10%10,n4=i/10/10/10%10,
n5=i/10/10/10/10%10;
if(n1==1) size++;
if(n2==1) size++;
if(n3==1) size++;
if(n4==1) size++;
if(n5==1) size++;
}cout <<size;
}
不知道该怎么改,姑且是通过了吧,n如果比十万大就不行了
41:数字统计
#include <iostream>
#include <cmath>
using namespace std;
int main(){
int l,r,n=0,h=0; //h表示最后计数
cin >> l >> r;
int r2=r; //保存r值
while(r2){ r2/=10;n++;} //最大数的长度
int size[n]; //用来保存每个数的数字
for(int i=l;i<=r;i++){
for(int j=0;j<n;j++){ //j表示每个位上的数字
int a=pow(10,j); //计算需要取的位数
size[j]=i/a%10; //储存每个位上的数字
}
for(int k=0;k<n;k++){ //遍历一次,判断每个位的数字是否等于2
if(size[k]==2) h++; //如果这个位等于2,则n+1
}
}cout << h;
}
我太难了,我压力真的好大,怎么那么多比我优秀的人啊