题目描述如下: 题目大致意思: 题目理解起来很简单,给出一个正整数,求出从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。
转载请注明原文地址: https://lol.8miu.com/read-31910.html