求从1到参数n中的各个数字中,各个位上1出现的次数和

/**
	 * 求从1到参数n中的各个数字中,1出现的次数和
	 *
	 * @param n
	 * @return
	 */
	public static int countOne(int n) {
		int factor = 1;
		int cur;
		int low;
		int high;
		int cnt = 0;
		while ((n / factor) != 0) {
			low = n - (n / factor) * factor;// 低位数字
			cur = (n / factor) % 10;// 当前位数字
			high = n / (factor * 10);// 高位数字

			switch (cur) {
			case 0:
				cnt += high * factor;//由高位决定
				break;
			case 1:
				cnt += high * factor + low + 1;
				break;
			default:
				cnt += (high + 1) * factor;
			}
			factor *= 10;
		}
		return cnt;
	}

时间: 2024-10-05 04:25:41

求从1到参数n中的各个数字中,各个位上1出现的次数和的相关文章

19SpringMvc_在业务控制方法中收集List集合中包含JavaBean参数

本文要实现的功能是给一张表单: 可以看到这样表格一共有四行,每一行代表一个员工(User),每一个员工有username和salary.我们要做的是把这四个员工信息装进一个List集合中. 那么怎么做呢? List不就是一个数组吗? 我们这么考虑: 案例结构如下: 第一步编写首页面emp.jsp,代码如下: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%

创建有输出参数的存储过程并在c#中实现DataGridView分页功能

不足之处,欢迎指正! 创建有输出参数的存储过程 if exists(select * from sysobjects where name='usp_getPage1') drop procedure usp_getPage1 go create procedure usp_getPage1--存储过程名称 @count int output,--输出参数 @countIndex int=1,--参数带默认值 @countPage int=5--参数带默认值 as --一个sql语句.ROW_N

以指针和引用两种参数实现删除单链表L中所有值为X的结点的函数

下面是单链表的数据结构 typedef struct LNode{ ElemType data; struct LNode *next; }LNode,*Linklist; 1.以指针参数实现 void delete_x_1(LNode *head,ElemType x){//head为单链表头结点,删除结点的值为x LNode *l = head; LNode *p = head->next; while(p != null){ if(p->data == x){ l->next =

理解性能的奥秘——应用程序中慢,SSMS中快(5)——案例:如何应对参数嗅探

本文属于<理解性能的奥秘--应用程序中慢,SSMS中快>系列 接上文:理解性能的奥秘--应用程序中慢,SSMS中快(4)--收集解决参数嗅探问题的信息 首先我们需要明白,参数嗅探本身不是问题,而是一个特性,避免SQL Server做出盲目的假设,从而产生次优查询计划.但是有些情况下,参数嗅探却会带来负面影响.通常有下面三种典型的情况: 查询使用的参数嗅探完全不合适.也就是说,查询计划对于这次执行是合适的,但是对于下一次执行就可能不合适. 应用程序中存在特定的调用模式,而且与其他大部分调用模式差

数字中所有数出现次数为k次,但有一个不为k次,求出这个数

思路: 1.建立辅助数组arr[32],统计数组中数的相应位上1的总和 2.如果要找的数在某个位i上不为0,则arr[i]对k取模肯定为0,否则表示要找的数在此位为1, s  +=  1<<i 代码如下: int find(int *a, int len, int K) { int arr[32] = {0}; int i, j; for(i = 0; i < len; ++i) { unsiged int k = a[i]; -->负数右移补1,会出错,所以先变成unsigned

理解性能的奥秘——应用程序中慢,SSMS中快(4)——收集解决参数嗅探问题的信息

本文属于<理解性能的奥秘--应用程序中慢,SSMS中快>系列 接上文:理解性能的奥秘--应用程序中慢,SSMS中快(3)--不总是参数嗅探的错 前面已经提到过关于存储过程在SSMS中运行很快,但在应用程序中运行很慢的可能原因:因为ARITHABORT的不同选项会导致不同的缓存词目,另外由于SQL Server使用了参数嗅探导致获得了不同的执行计划. 虽然已经说明了这个现象的原因,但是还没解释:如何定位和解决这个问题?到目前为止,大家都知道了如何快速处理,如果这个问题很紧急,可以直接使用: EX

理解性能的奥秘——应用程序中慢,SSMS中快(3)——不总是参数嗅探的错

本文属于<理解性能的奥秘--应用程序中慢,SSMS中快>系列 接上文:理解性能的奥秘--应用程序中慢,SSMS中快(2)--SQL Server如何编译存储过程 在我们开始深入研究如何处理参数嗅探相关的性能问题之前,由于这个课题过于广泛,所以首先先介绍一些跟参数嗅探没有直接关系的内容,但是又会导致语句在SSMS和应用程序中存在性能差异的情况. 替换变量和参数: 前面已经接触过,但是在这里对其进行扩展.有时会看到论坛上有人说,某个存储过程很慢,但是把相同的语句提取出来单独执行就很快.真相就是:语

Extjs中给同一个GridPanel中的事件添加参数的方法

Extjs中给同一个GridPanel中的事件添加参数的方法: this.isUse = new Ext.Action({            text:'启用',            scope:this,            handler:this.isUseWin.createDelegate (this,[1])        });        this.isNotUse = new Ext.Action({            text:'停用',            

spring mvc中的控制器方法中的参数从哪里传进来?

编写控制器方法的时候很奇怪,spring是怎么知道你控制器方法的参数类型,并且注入正确的对象呢? 比如下面这样 @RequestMapping(value="/register", method=GET) public String showRegistrationForm(Model model) { model.addAttribute(new Spitter()); return "registerForm"; } 他怎么知道Model对应啥呢? 其实,spr