找出1-N中1的个数
一、题目
#include<iostream.h> int Count(int n)
{
int count=; //对1的个数计数
int now=; //N由最低位到最高位此时对应第now位
int l=; //第now位的低一位的数字
int nownum=; //第now位的数字
int h=; //第now位的高一位的数字
if(n<=)
{
return ;
}
while(n/now!=)
{
l=n-(n/now)*now;
nownum=(n/now)%;
h=n/(now*);
if(nownum==) //第now位的数字为0时,1的个数等于第now位的高一位的数字*now
{
count+=h*now;
}
else if(nownum==)//第now位的数字为1时,1的个数等于第now位的高一位的数字*now在加1
{
count+=h*now+l+;
}
else//第now位的数字大于1时,1的个数等于(第now位的高一位的数字+1)*now
{
count+=(h+)*now;
}
now*=; //第now位指向他的高一位
}
return count;
} int main()
{
int a;
cout<<"请输入正整数N:"<<endl;
cin>>a;
cout<<"f("<<a<<")="<<Count(a)<<endl;
return ;
}
四、运行结果截图



五、总结
这道题老师所给的思路大致清楚,但没有得到结果,也未能实现代码。这是找的核心代码理解后修改参数完整实现的,但寻找满足条件的“f(N) =N”的最大的N还不会。自己在找最优算法上还需要提高。
找出1-N中1的个数的更多相关文章
- 一个N*M的矩阵,找出这个矩阵中所有元素的和不小于K的面积最小的子矩阵
题目描述: 一个N*M的矩阵,找出这个矩阵中所有元素的和不小于K的面积最小的子矩阵(矩阵中元素个数为矩阵面积) 输入: 每个案例第一行三个正整数N,M<=100,表示矩阵大小,和一个整数K 接下 ...
- 笔试题&面试题:找出一个数组中第m小的值并输出
题目:找出一个数组中第m小的值并输出. 代码: #include <stdio.h> int findm_min(int a[], int n, int m) //n代表数组长度,m代表找 ...
- LeetCode 5071. 找出所有行中最小公共元素(Java)
题目:5071. 找出所有行中最小公共元素 给你一个矩阵 mat,其中每一行的元素都已经按 递增 顺序排好了.请你帮忙找出在所有这些行中 最小的公共元素. 如果矩阵中没有这样的公共元素,就请返回 -1 ...
- Entity Framework 6 Recipes 2nd Edition(9-3)译->找出Web API中发生了什么变化
9-3. 找出Web API中发生了什么变化 问题 想通过基于REST的Web API服务对数据库进行插入,删除和修改对象图,而不必为每个实体类编写单独的更新方法. 此外, 用EF6的Code Fri ...
- 找出Java进程中大量消耗CPU
原文:https://github.com/oldratlee/useful-shells useful-shells 把平时有用的手动操作做成脚本,这样可以便捷的使用. show-busy-java ...
- 找出sql脚本中需要创建的表空间名称和数据库用户名
测试的工作中,经常会遇到项目交接或者搭建一个新的测试环境,而创建oracle数据库用户及表空间时,需要提前找出脚本中的 数据库用户名和表空间名,所以自己写了一个python脚本,自动找出sql脚本中的 ...
- 找出程序GasMileage中的哪一行与下列叙述相对应:
找出程序GasMileage中的哪一行与下列叙述相对应: a.通知程序将使用Scanner类 import java.util.Scannner; b.创建一个Scanner类的对象 Scan ...
- 如何在EXCEL中找出第一列中不包含的第二列数据
1.找出第一列中不包含的第二列数据:=IFERROR(VLOOKUP(A:A,B:B,1,0),"无") 2.A列相同,B列相加:=SUMIF(G:G,G1,J:J)
- 给定两个字符串 s 和 t,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。
给定两个字符串 s 和 t,它们只包含小写字母.字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母.请找出在 t 中被添加的字母. 示例: 输入: s = "abcd" ...
- ZT CSDN 如何以最快的速度计算出一个二进制数中1的个数? [
一道算法面试题:如何以最快的速度计算出一个二进制数中1的个数? [问题点数:10分,结帖人weicai_chen] 收藏 weicai_chen weicai_chen 等级: 结帖率:95.12% ...
随机推荐
- Sublime Text 2/3安装CTags实现函数跳转
安装ctags 下载 ctags程序,放到目录D:/ctags/下 安装ctags插件 1. 打开Sublime Text 2. Preferences->Package Control-> ...
- 007Linux在线升级yum
1.Linux下如何安装软件:利用rpm命令进行安装: 2.rpm优点:安装过程很简单,不需要做额外的配置逻辑,拿到安装包,通过rpm命令就可以安装: 3.rpm缺点: (1)需要自己四处去找和系统版 ...
- 2搭建Android开发环境
这一章主要是讲解如何搭建Android开发环境,需要准备的工具有: (1) JDK6或以上的版本: (2) Eclipse (3) ADT(用于开发Android应用程序) (4) C ...
- XCode 7.1 安装 Alcatraz包管理器失败的处理
按照官方的文档(https://github.com/supermarin/Alcatraz),先卸载再重新安装即可.步骤如下: 1. 退出Xcode 2. rm -rf ~/Library/Appl ...
- windows下如何修改远程登录端口
windows下如何修改远程登录端口 windows远程桌面默认端口为3389,修改 方法如下:在"开始>运行"中输入"regedit" 点击“确定”,打 ...
- 后缀为inc的是什么文件?C#中如何包含inc文件?
在项目Web页面文件中,发现这么一句话: <!-- 页面字符集设置 begin--><!-- #INCLUDE FILE="http://www.cnblogs.com/C ...
- DevExpress之ASPxGridView笔记(1)
1.设置Row(某列)输出格式,例如,在数字前加美元符.每3位以逗号隔开及设置小数点后两位: <dx:GridViewDataTextColumn FieldName="SHOUHUI ...
- 获取php的配置
ini_get — 获取一个配置选项的值 返回值 成功是返回配置选项值的字符串,null 的值则返回空字符串.如果配置选项不存在,将会返回 FALSE. <?php /* 我们的 php.ini ...
- 一元三次方程 (codevs 1038)题解
[问题描述] 有形如:ax3+bx2+cx+d=0这样的一个一元三次方程.给出该方程中各项的系数(a,b,c,d均为实数),并约定该方程存在三个不同实根(根的范围在-100至100之间),且根与根之差 ...
- WebForm与MVC混用
步骤一:添加引用 -> 程序集 -> 扩展 -> System.Web.Mvc ; System.Web.Razor; System.Web.WebPages; System.Web ...