计数问题
2016-03-31 23:56
176 查看
#include <iostream> using namespace std; const int N=11; int d ; //d 中存储数字0-9分别出现的次数 int value; //记录相应的权值变化 void deal(int n); void deal(int n) { if(n<=0)return; int one,ten; //个位和十位 one=n % 10; n /= 10; ten = n; for(int i=0;i<=one;i++) //将个位出现的数统计出来 d[i]+=value; while(ten) { d[ten%10]+=(one+1)*value; ten/=10; } for(int i=0;i<=10;i++) d[i]+=value*n; d[0]-=value; //将第一位是0的情况排除 value*=10; //权值变化,变为原来的10倍 deal(n-1); } int main() { int a,b; while(cin>>a>>b) { if(a==0&&b==0)break; if(a<b) { int tmp=b;b=a;a=tmp; } for(int i=0;i<10;i++) d[i]=0; value=1; deal(a); value=-1; deal(b-1); cout<<d[1]<<endl; } return 0; }
相关文章推荐
- 树莓派安装samba时出错
- 哲学初步认识5
- Java之输入
- sqlserver还原数据库的时候出现提示无法打开备份设备的解决方法(设备出现错误或设备脱)
- 编程珠玑学习笔记(第一章)
- iOS的JS和OC代码互相调用
- javaEE 分页功能最终代码优化(二)
- 线程的共享互斥
- 冒泡排序
- centos7如何调节屏幕分辨率
- 2016自考总结
- mysql DELIMITER $$
- [BZOJ3343]教主的魔法(分块)
- LeetCode之4---Median of Two Sorted Arrays
- 简单密码破解
- LeetCode之4---Median of Two Sorted Arrays
- Linux分析第六周——进程的描述和进程的创建
- Android 常见的坑
- iOS微信支持遇到的问题:只显示一个确定按钮、onResp不回调、闪回
- tomcat设置 4000 环境变量后仍然闪退问题