#include <iostream>
using namespace std;
int getOne(int);
//求1~n之间出现1的个数,如f(1) = 1; f(13) = 6(1,10,11,12,13);,问f(n)=n中,n=?
//采用缓存机制提高效率,如计算101,f(101) = f(100) + 101有多少个1
int main(){
int n = 2;
int sum = 1;
while((sum + getOne(n)) != n){
sum += getOne(n);
n ++;
}
cout << n;
system("pause");
return 0;
}
//itoa( int value, char *string, int radix );
//第一个参数:你要转化的int;
//第二个参数:转化后的char*;
//第三个参数:你要转化的进制;
int getOne(int n){
//求n中有多少个1
int count = 0;
char c[20];
itoa(n, c, 10);
for(int i = 0; i < strlen(c); i ++){
if(c[i] == '1'){
count ++;
}
}
return count;
}
分享到:
相关推荐
输入数字n,统计0~n中1的个数,如12,1,10,11,12带1的个数5个。(假定输入的数0~999)(数组法)
1~N中1的个数
求n!数的末尾0的个数.用c语言实现。 简单方便
素数又叫质数,质数是指在大于1的自然数中,除了1和它本身以外,不能被其他自然数整除的数。 问题: 输入一个整数n,输出1~n中的素数,里有详细解释,有问题也欢迎留言!谢谢支持啦~
C++版本计算n阶乘末尾0的个数原理讲解及代码实现
C++计算一个数字的二进制中0或1的个数原理及代码
有一个整数n,写一个函数f(n),返回0到n之间出现的 "1 "的个数。比如f(13)=6,现在f(1)=1,问下一个最大的f(n)=n的n是什么?
):设有一个数组A:array [0..N-1] of integer; 存放的元素为0~N-1(1<N)之间的整数,且A[i]≠A[j](i≠j)。例如当N=6时,有:A=(4,3,0,5,1,2)。此时,数组A的编码定义如下: A[0]编码为0; A[i]编码为:在...
给定一个十进制正整数N,程序输出从1到N的所有整数中,“1”出现的个数。C语言程序附带实验报告
求100~200内全部素数 自己 写的 一个小程序
题:输入一个整数n,求1~n这n个整数的十进制表示中1出现的次数。例如,输入12,1~12这些整数中包含1的数字有1,10,11,12一共出现了5次。 解题思路一:直接累加1~n中每个整数中1出现的次数。 class Solution: def ...
程序举例-求偶数的个数 4-2 程序举例-求偶数的个数 任务需求 从键盘任意输入10个整数,求偶数的个数。 任务分析 依次读入10个整数,送入数组中,在循环中嵌套判断语句,统计符合条件的数字个数。 示例代码 #define N...
对任意输入的正整数N,编写Java程序求N!的尾部连续0的个数。如18! = 6402373705728000,尾部连续0的个数是3。
主要介绍了C++求1到n中1出现的次数以及数的二进制表示中1的个数,两道基础的算法题目,文中也给出了解题思路,需要的朋友可以参考下
输入一个自然数n,求 ,同时统计结果中有多少个0。
C语言程序设计-编写main程序调用函数fact求解从m个元素选n个元素的组合数的个数;计算公式是: 组合数=m!(n!.(m-n)!);要求m不能小于n,否则应有容错处理;说明:函数fact(x)的功能是求x!;
(android demo)算法实现:计算十进制数N的二进制形式中包含数字1的个数
计算小于N的所有整数里,出现的1的个数,具体分析在我的 博客 编程之美 那一栏里,呵呵
题目描述 同构数是这样一种数:它出现在它的平方数的...找出1~N之间(包括N)的全部同构数。 输入 正整数N,N。 输出 1~N之间的全部同构数,从小到大排列,用空格隔开。 样例输入 Copy 100 样例输出 Copy 1 5 6 25 76