算法训练 1的个数(输入正整数n,判断从1到n之中,数字1一共要出现几次。例如1123这个数,则出现了两次1。例如15,那么从1到15之中,一共出现了8个1。)
发布日期:2021-07-27 04:49:02 浏览次数:7 分类:技术文章

本文共 440 字,大约阅读时间需要 1 分钟。

问题描述

输入正整数n,判断从1到n之中,数字1一共要出现几次。例如1123这个数,则出现了两次1。例如15,那么从1到15之中,一共出现了8个1。

输入格式
  一个正整数n
输出格式
  一个整数,表示1出现的资料
样例输入
15
样例输出
8
数据规模和约定
  n不超过30000

思路

写一个函数用来判断一个数里面有多少个1,并定义全局变量,记录1的个数。在主函数中只需要遍历所有的数,就可以找到所有的数中有多少个1。

代码呈上:

#include 
int sum=0;void f(int n){
int a; while(n>0) {
if(n%10==1) sum++; n/=10; }} int main (){
int n; scanf("%d",&n); int i; for(i=1;i<=n;i++) {
f(i); } printf("%d",sum); return 0; }

运行示例

在这里插入图片描述

转载地址:https://blog.csdn.net/qq_45281807/article/details/105569258 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:算法训练 素因子去重(给定一个正整数n,求一个正整数p,满足p仅包含n的所有素因子,且每个素因子的次数不大于1)
下一篇:算法训练 景点游览(小明来到一个景区游玩,但是他的时间有限,没办法逛遍所有的景点,所以他从网上下载了每个景点的评分,他希望能够使游览的景点的评分总和最高,于是他希望你帮他对于N个景点排下序。)

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年09月08日 10时52分04秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章