题目描述如下:
题目大致意思:
题目理解起来很简单,给出一个正整数,求出从1到该正整数中1出现的个数。
大致思路:
最简单的想法是从1到N进行遍历,累加1出现的次数即可,应该不会超出时间限制。
提交结果如下:
出乎意料的是有两个测试用例运行超时了,解决的方法暂时放在第二轮刷题时考虑。
第一次提交运行超时时提交的代码:
#include<iostream>
#include<string>
using namespace std;
int func(int n);
int main()
{
int n;cin>>n;int sum=0;for(int i=1;i<=n;i++){
sum+=func(i);}cout<<sum;
}
int func(int n)
{
int result=0;string str=to_string(n);for(int i=0;i<str.size();i++){
if(str[i]=='1')result++;}return result;
}
本次提交后累计得分826。