从1到n整数x出现的次数
来源:互联网 发布:html标签id使用js变量 编辑:程序博客网 时间:2024/06/06 05:50
/* * 统计1到n的整数中x(x可以是1~9的数)出现的次数 */#include <iostream>using namespace std;intsolve(unsigned int n, int x); /* 根据数字规律,效率较高的算法实现 */intsolve2(unsigned int n, int x); /* 遍历所有整数的实现,n较大时极端低效 */intmain(void){int x;cin>>x; /*x可以是1-9的整数*/for (unsigned int i = 0; i < 10000; ++i)if (solve(i, x) != solve2(i, x)) {cout<<"solve("<<i<<") = "<<solve(i, x)<<endl;cout<<"solve2("<<i<<") = "<<solve2(i, x)<<endl;break;}return 0;}intsolve(unsigned int n, int x) {if (x <= 0 || x > 9)return -1;int sum = 0;int k; //int num;int dex = 0;int sex = 1;int sub = 0;while (n) {k = n % 10;sum += k * dex;if (k == x) sum += sub + 1;else if (k > x)sum += sex;sub += k * sex;dex = 10 * dex + sex;sex *= 10;n /= 10;}return sum;}int single(unsigned int n, int x){int num = 0;int k;while (n != 0) {k = n % 10;if (k == x)++num;n = n / 10;}return num;}int solve2(unsigned int n, int x){if (x <= 0 || x > 9)return -1;int sum = 0;for (int i = 1; i <= n; ++i)sum += single(i, x);return sum;}
0 0
- 从1到n整数x出现的次数
- 32-从1到n整数中X出现的次数
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 从1到 n整数中1出现的次数
- 页面之间传值之delegate委托传值
- 如何在C#里面执行.SQL脚本(SQL SERVER)
- 位、字节、字符、汉字的关系
- Android破解工具汇总
- 206. Reverse Linked List&反转链表
- 从1到n整数x出现的次数
- VMware 下安装Ubuntu的吐血经历
- apache.commons.lang3_DateFormatUtils,RandomStringUtils
- SQLException:无效的标识符
- leetcode: Reverse Linked List(java)
- andorid系统配置及编译过程
- Ubuntu 编译opencv出错:‘GstMiniObjectClass’ does not name a type 解决方法
- Qt的QTextCodec用法(渣翻译)
- 代码性能相关的资源