uva 11038
来源:互联网 发布:钢琴选购知乎 编辑:程序博客网 时间:2024/06/09 18:05
排列组合的题目,分位数考虑,累加每一位上为0时有多少种情况。
n的第i位为0=n左边的数(高位)*10^i
n的第i位不为0 =(n左边的数-1)*10^i+(i位右边的数+1)
res=f(n)-f(m-1);
ACcode:
#include<stdio.h>#define LL long longLL num0(LL n){ LL cnt=0,k=0,j=1,c; while (n>=10) { c=n%10,n=n/10; if (c) cnt+=1LL*n*j; else cnt+=(1LL*(n-1)*j)+k+1; k+=1LL*c*j; j*=10; } return cnt;}int main(){ LL n,m,k; while ((scanf("%lld %lld",&m,&n)!=EOF)&&m>=0) { k=num0(n)-num0(m-1); if (m==0) k++; printf("%lld\n",k); } return 0; }
- uva 11038
- uva
- UVA
- UVA
- UVA
- uva
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- 简单网页版的年会抽奖程序,设计个界面套上就可以了,抽奖员工编号姓名改改代码就可以了,很简单的
- WAKEUP.C的详细注释
- Ole拖放
- 5个感悟故事
- zabbix-2.0.0 server & agent安装
- uva 11038
- Eclipse与MyEclipse的联系和区别
- 屏蔽浏览器刷新 兼容firefox 和 ie
- php5构造函数
- WEB打印的几种方案
- StringUtils的isBlank与isEmply
- window linux文件共享
- 柴静《看见》发布会:采访是人与人的生命往来
- .net 基础