输入N,从1~N求有几个1。
枚举,先用子函数求出每一个数中出现1的次数,然后在主函数中循环从1-N。
#include<iostream> #include<algorithm> using namespace std; int get_one(int n){ int a,sum=0; while(n){ a=n%10; //循环每一位 if(a==1) sum++; n=n/10; } return sum; } int main(){ int n,sum=0; scanf("%d",&n); for(int i=1;i<=n;i++){ sum+=get_one(i); } printf("%d",sum); return 0; }虽然超时了两个测试点,但是我感觉这个还是可以拿分的。
看了一下算法笔记,这个找规律也太麻烦惹。 而且因为我用的是VS2010,所以需要system(“pause”)让测试黑框不要一闪而过