博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
牛客OJ:统计n以内所有数中各个位上1出现的个数
阅读量:4060 次
发布时间:2019-05-25

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

数学题:

三种情况讨论即可

if(num[i] > 1) ans += (sumfront[i]+1)*base[i];if(num[i] == 1) ans += sumfront[i]*base[i] + sumback[i] + 1;if(num[i] == 0) ans += sumfront[i]*base[i];

关于代码解释:

代码:

#include 
using namespace std;int main(){ int n; scanf("%d",&n); int num[10]; int sumfront[10]; int base[10]; int sumback[10]; memset(num,0,sizeof(num)); memset(sumfront,0,sizeof(sumfront)); memset(base,0,sizeof(base)); memset(sumback,0,sizeof(sumback)); base[1] = 1; for(int i=2;i<10;i++) base[i] = base[i-1]*10; int loc = 1; while(n>0){ int mod = n%10; n/=10; num[loc++] = mod; } for(int i=1;i
=1;i--) sumfront[i] = sumfront[i+1]*10 + num[i+1]; int ans = 0; for(int i=0;i
1) ans += (sumfront[i]+1)*base[i]; if(num[i] == 1) ans += sumfront[i]*base[i] + sumback[i] + 1; if(num[i] == 0) ans += sumfront[i]*base[i]; } printf("%d\n",ans); return 0;}

转载地址:http://tywji.baihongyu.com/

你可能感兴趣的文章
【opencv学习笔记】025之直方图计算 - calcHist函数详解
查看>>
【积跬步以至千里】win10应用商店误删恢复
查看>>
【吴恩达机器学习笔记】001 什么是机器学习(What is Machine Learning)
查看>>
【吴恩达机器学习笔记】002 监督学习(Supervised Learning)
查看>>
【吴恩达机器学习笔记】003 无监督学习(Unsupervised Learning)
查看>>
【吴恩达机器学习笔记】004 模型示例:单变量线性回归(Model Representation:Linear Regression with one variable)
查看>>
【吴恩达机器学习笔记】005 梯度下降(Gradient Descent)
查看>>
【opencv学习笔记】026之直方图比较 - compareHist函数详解
查看>>
【opencv学习笔记】027之直方图反向投影 - calcBackProject函数详解
查看>>
【opencv学习笔记】001之opencv配置(win10+VS2015+OpenCV3.1.0)
查看>>
Python学习四之变量类型
查看>>
Python import相关内容区别介绍( import *** as 、from***import )
查看>>
Python报错:UnicodeDecodeError: 'gbk' codec can't decode byte ...
查看>>
C++报错:The build tools for v141 (Platform Toolset = 'v141') cannot be found.
查看>>
Python错误:PyCharm 安装出错 Internal error,please。。。
查看>>
软件架构简介
查看>>
SQL2012报错:cannot find one or more cpmponents
查看>>
关于runat = “server”
查看>>
【opencv实战】图像素描及卡通化
查看>>
【opencv实战】哈哈镜
查看>>