codefoces214b 整除问题
来源:互联网 发布:外汇行情看盘软件 编辑:程序博客网 时间:2024/06/12 22:26
/*
首先这道题的题意是所给的数中挑选可以被2,5,3同时整除的最大的数
可以不选完,即从中挑选一些,不能有前导零
0时可以;
被2,5整除,必须含有0,当全是0时,只输出一个
被三整除的数的性质 各位数加起来之和也能被3整除,当各位数和%3==2时
删除一个%3余1的 1 4 7
或者删除两个%3余2的 2 5 8
各位数和%3==1 时 同理
另附各种整除性质
被2整除 偶数
被4整除 后两位被4整除即可
被5整除 末位是0或5
被6整除 同时满足偶数和 各位数和被3整除
被7整除 ……
被8整除 后三位被8整除即可
被9整除 各位数和被9整除
如果一个数的末两位数能被4整除,该数能被4整除
如果一个数的末三位数能被8整除,该数能被8整除
如果一个数的末尾是5或0,那么该数能被5整除
如果一个数各位数之和能被3(9)整除,该数能被3(9)整除
参见https://zhidao.baidu.com/question/151751261.html
关于判断7,11,13的整除情况,是将一个多于4位的整数在百位与千位之间分为两截,形成两个数,左边的数原来的千位、万位成为个位、十位(依次类推)。
将这两个新数相减(较大的数减较小的数),所得的差不改变原来数能被7、11、13整除的特性。
这个方法可以连续使用,直到所得的差小于1000为止。
举个例子:判断71858332能否被7、11、13整除,这个数比较大,
将它分成71858、332两个数(右边是三位数)
71858-332=71526
再将71526分成71、526两个数(右边是三位数)
526-71=455
由于455数比原数小得多,
相对来说容易判断455能被7和13整除,不能被11整除,
所以原来的71858332能被7和13整除,不能被11整除
6,10,12,14,15,18这些个数,只要判断他们能不能同时被他们的约数整除就可以了,例如如果判断被6整除,只需要判断它同时能被2,3整除即可
判断被17,19整除暂时没什么好的方法 其实在实际中也不那么需要的
#include<iostream>#include<cstdio>#include<algorithm>using namespace std;int main(){ int n; cin>>n; int a[20]= {0}; int b[100005]; int sum = 0; int num; int flag1 = 0,flag2 = 0; for(int i=1; i<=n; i++) { scanf("%d",&num); sum+=num; a[num]++; } if(a[0]==0) printf("-1\n"); else { if(sum%3==2) { if(a[2]>0) { a[2]--; flag1 = 1; } else if(a[5]>0) { a[5]--; flag1 = 1; } else if(a[8]>0) { a[8]--; flag1 = 1; } if(!flag1) { int top = 2; while(a[1]>0&&top>0) { a[1]--; top--; } while(a[4]>0&&top>0) { a[4]--; top--; } while(a[7]>0&&top>0) { a[7]--; top--; } } } else if(sum%3==1) { if(a[1]>0) { a[1]--; flag1 = 1; } else if(a[4]>0) { a[4]--; flag1 = 1; } else if(a[7]>0) { a[7]--; flag1 = 1; } if(!flag1) { int top = 2; while(a[2]>0&&top>0) { a[2]--; top--; } while(a[5]>0&&top>0) { a[5]--; top--; } while(a[8]>0&&top>0) { a[8]--; top--; } } } for(int i=9; i>=1; i--) { for(int j=1; j<=a[i]; j++) { printf("%d",i); flag2 = 1; } } if(flag2) for(int j=1;j<=a[0];j++) printf("%d",0); else printf("0\n"); } return 0;}
- codefoces214b 整除问题
- 整除问题
- 整除问题
- 整除问题
- 整除问题
- 整除问题
- hdu 2099 整除的尾数(整除问题)
- 长整除问题
- 题目55:整除问题
- 整除15 问题
- 题目1104:整除问题
- 题目1104:整除问题
- OJ_1104 整除问题
- 题目1104:整除问题
- 整除15问题
- java 长整除问题
- 交大1104,整除问题
- 题目1104:整除问题
- SVN服务器搭建和使用(一)
- 使用Read Committed级别的隔离机制会出现的问题
- mysql中 explain使用详解
- springmvc配置步骤
- STRING POOL IN JAVA
- codefoces214b 整除问题
- struts2与dwr整合(初级)
- Handler源码解析
- 常量池、栈、堆的比较
- SQL性能突然降低引起的业务办理缓慢案例一则
- 设计模式之状态模式
- php实战:html+php+mysql实现留言板功能
- MySQL设置密码
- git推送到服务器自动同步到站点目录