抽屉原理---从1到20这20个数中,任取11个数,必有两个数,其中一个数是另一个数的倍数
2011-11-15 18:35
1021 查看
import java.util.*; class Acm { public static void main(String args[]) { Scanner sin = new Scanner(System.in); int m,n; while(sin.hasNextInt()) { m=sin.nextInt(); n=sin.nextInt(); if(show(m)<=n) System.out.println("YES"); else System.out.println("NO"); } } public static int show(int m) { return(int) Math.ceil((((double)m)/2))+1; } } /* 例3: 从1到20这20个数中,任取11个数,必有两个数,其中一个数是另一个数的倍数。 分析与解答 根据题目所要求证的问题, 应考虑按照同一抽屉中,任意两数都具有倍数关系的原则制造抽屉.把这20个数按奇数及其倍数分成以下十组, 看成10个抽屉(显然,它们具有上述性质): {1,2,4,8,16},{3,6,12},{5,10,20},{7,14},{9,18},{11},{13},{15},{17},{19}。 从这10个数组的20个数中任取11个数,根据抽屉原理,至少有两个数取自同一个抽屉.由于凡在同一抽屉中的两个数都具有倍数关系, 所以这两个数中,其中一个数一定是另一个数的倍数。 /* * * */
相关文章推荐
- 把1316这个数表示成两个数的和,其中一个为13的倍数,另一个是11的倍数,求这两个数。
- 输入两个整数序列。其中一个序列表示栈的push顺序, 判断另一个序列有没有可能是对应的pop顺序。 为了简单起见,我们假设push序列的任意两个整数都是不相等的
- 两个关联的GridView,点击其中一个,另一个的状态发生变化,联动操作
- 小算法:给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串s首先
- 【练习】输入两个整数序列。其中一个序列表示栈的push 顺序,判断另一个序列有没有可能是对应的pop 顺序
- 巧排数字,将1,2,...,19,20这20个数字排成一排,使得相邻的两个数字之和为一个素数
- [Unity 笔记] 在Object上挂在两个script, 其中一个的初始化代码先于另一个执行
- 给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。这里规定大小写为不同字符,且考虑字符串重点空格。 给定一个string stringA和一个string stri
- JAVA中申请了两个对象,分别在调用方法和声明方法中把其中一个对象直接赋值给另外一个对象,运行结果,求原理。
- 在Tomcat的server.xml中配置两个context,出现其中一个不能正常启动,交换配置顺序,另一个又不能正常启动,即始终只有第二个配置能启动的情况。如果单独部署,都没有问题。报错大致内容如下
- 使用tabhost,相邻的两个片段,点击其中一个,另一个再打开就显示空白
- <仅是自己做笔记。。。系列-14>输入两个整数序列。其中一个序列表示栈的push顺序, 判断另一个序列有没有可能是对应的pop顺序。
- 给定两个字符串,请设计一个方法来判定其中一个字符串是否为另一个字符串的置换(容易)
- 传入两个字符串,确认其中一个字符串重新排序后能否变为另一个字符串(也就是两个字符串相等)
- react实现两个方法同时执行时,其中一个能够调用另一个的执行结果
- 微软算法100道题-------输入两个整数序列。其中一个序列表示栈的push顺序, 判断另一个序列有没有可能是对应的pop顺序。
- vbs中实现启动两个应用程序,一直等到其中一个程序结束,然后关闭另一个?
- 确定两串乱序同构 给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。这里规定大小写为不同字符,且考虑字符串重点空格。 给定一个string stringA和一个
- 三角形面积=SQRT(S*(S-a)*(S-b)*(S-c)) 其中S=(a+b+c)/2,a、b、c为三角形的三边。 定义两个带参的宏,一个用来求area, 另一个宏用来求S。 写程序,在程序中用带