poj 3406 Last digit 求组合数的最后非零数
来源:互联网 发布:同望软件培训 编辑:程序博客网 时间:2024/05/29 13:13
题意:
求组合数C(n,m),n>=m的最后非0数。
分析:
与求排列数的最后非0数类似,要注意分母上以3结尾的数可能比分子上的多,要特殊处理。
代码:
//poj 3406//sep9#include <iostream>using namespace std;int table[4][4]={6,2,4,8,1,3,9,7,1,7,9,3,1,9,1,9,};int f2(int n){if(n==0) return 0;return n/2+f2(n/2);}int f5(int n){if(n==0) return 0;return n/5+f5(n/5);}int g(int n,int x){if(n==0) return 0;return n/10+(n%10>=x)+g(n/5,x);}int f(int n,int x){if(n==0) return 0;return f(n/2,x)+g(n,x);}int main(){int n,m,num2,num3,num5,num7,num9;while(scanf("%d%d",&n,&m)==2){num2=f2(n)-f2(n-m)-f2(m);num5=f5(n)-f5(n-m)-f5(m);num3=f(n,3)-f(n-m,3)-f(m,3);num7=f(n,7)-f(n-m,7)-f(m,7);num9=f(n,9)-f(n-m,9)-f(m,9);num3+=num9*2,num9=0;int res=1;if(num2<num5){printf("5\n");continue;}if(num2!=num5){res*=table[0][(num2-num5)%4];res%=10;}res*=table[1][num3%4];res%=10;res*=table[2][num7%4];res%=10;res*=table[3][num9%4];res%=10;printf("%d\n",res);}return 0;}
0 0
- poj 3406 Last digit 求组合数的最后非零数
- poj 1150 The Last Non-zero Digit 求排列数的最后非零数
- 组合数最后非零位:poj 3406 Last digit
- POJ 1150-The Last Non-zero Digit(求阶乘最后一位非零数)
- hdu 1066 Last non-zero Digit in N! 数学,求n!最后一位非零数
- poj 3406:Last digit(求C(n, m)的最后一个非0位)
- 求n!的最后一位非零数
- pku 1150 The Last Non-zero Digit 阶乘最后一位非零数
- (Relax 数论1.27)POJ 1150 The Last Non-zero Digit(求p(n,m)的最后一个非零数字)
- poj 1150:The Last Non-zero Digit(求A(n, m)的最后一个非0位)
- poj 3406 组合数的最后非0数
- 排列数最后非零位:poj 1150 The Last Non-zero Digit
- UVA568求n!的最后一位非零数
- 求N!中最后一个非零数
- 数论之求最后一位非零数
- 【最后一个非零数】
- 求N!的最末位非零数
- 求N!的最末位非零数
- 初学者入门-用Spark ML来处理超大数据
- The app icon set "AppIcon" has an unassigned child告警
- Android Studio安装
- 【SSH项目实战】国税协同平台-23.抽取BaseService
- 一个sql题目, 统计每年每月的信息
- poj 3406 Last digit 求组合数的最后非零数
- 探讨opencv中mask的应用
- C语言总结(一):
- Struts2系统学习(17)Struts2标签库详解
- Tutorial: Creating models in 3dsMa and Render via JPCT-Bones
- switchbutton
- 继续(3n+1)猜想
- OpenCV - 三种线性滤波的使用
- 数据库的3个范式之间的区别