首页 > 代码库 > 计算1的个数
计算1的个数
__int64 CountOne(__int64 n) { __int64 count =0; if (n ==0) count =0; else if (n >1&& n <10) count =1; else { __int64 highest = n; __int64 bit =0; while (highest >=10) { highest = highest /10; bit++; } __int64 weight = (__int64)pow(10, bit); if (highest ==1) { count = CountOne(weight -1)+ CountOne(n - weight)+ n - weight +1; } else { count = highest * CountOne(weight -1)+ CountOne(n - highest * weight) + weight; } } return count; }<pre name="code" class="cpp">publiclong CountOne2(long n) { long count =0; long i =1; long current =0,after =0,before =0; while((n / i) !=0) { current = (n / i) %10; before = n / (i *10); after = n - (n / i) * i; if (current >1) count = count + (before +1) * i; elseif (current ==0) count = count + before * i; elseif(current ==1) count = count + before * i + after +1; i = i *10; } return count; }
计算1的个数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。