和为S的两个数】的更多相关文章

一个简单的小算法来获取两个数的最大公约数, public class Test { public static void main(String[] args) { long result = gcd(15, 3); System.out.println(result); } public static long gcd(long m, long n) { while (n != 0) { long rem = m % n; m = n; n = rem; } return m; } }…
通过JavaScript的Math.random()方法可以获取0到1之间的任意随机数,那如何获取任意给定的两个数之间的随机数呢?如获取2和5之间的随机数,5和10之间的随机数等. 由于Math.random()函数总是返回0到1之间的一个随机数,我们可以把0看成最小数,把1看成最大数.假设最小数是max,最大数是min,通过下面的公式我们便可得出任意两个数之间的随机数: Math.random() * (max - min) + min 如果使用Math.floor()进行向下舍入操作,则需要…
刚开始的时候写,一直写不对:看似简单的功能,但是一定要小心:函数的定义: funciton functionName {.....}在functionName和{之间一定有空格啊! 我就是没加空格,就一直报错. 实现两个数相加: #! /usr/bin/ksh function add { if (( $# < 2 )); then echo "The arg in't correct" else sum=$(($1+$2)) echo $sum fi } add 1 add 1…
1-20的两个数把和告诉A,积告诉B,A说不知道是多少,B也说不知道,这时A说我知道了,B接着说我也知道了,问这两个数是多少? 分析: 设和为S,积为M. 首先,A:我不知道. 说明:S可以分解成多个组合,而2=1+1,3=1+2,40=20+20,39=19+20,只有一种分解方式,因此S应属于[4,38]集合. 其次,B:我也不知道. 说明:M也可以分解成多个组合,因此M不是质数. 再者,A:我现在知道了. 说明:S分解方式中只有一个相乘之后是合数,其他分解方式相乘之后都是质数.这样,A才能…
//计算2个数的加减乘除 谷伟华 2015/10/6package jisuan; import javax.swing.JOptionPane; public class Jiasuan { public static void main(String[] args) { // TODO 自动生成的方法存根 String firstNumber; // 定义输入框的提示字 String secondNumber; // 定义输入框的提示字 double num1; // 定义输入的第一个数 d…
这是Thinking in java 中的一道题,下面是我的解决方案: package test; import java.util.LinkedList; import java.util.ListIterator; /** * * 创建一个LinkedList,然后在其中插入多个值,确保每个值都插入到List中间(偶数中间两个数之一,奇数在正中间) * */ public class InsertInMiddle { public static void main(String[] args…
获得两个随机数(100以内),并放入数组中 public int[] getTwoRandom(){ int[] t = new int[2]; Random rand = new Random(); for(int i=0;i<t.length;i++) { t[i] = rand.nextInt(100); } return t; } 1.一般算法,连续整数检测法即从m和n中比较小的数开始一次遍历整数,如果有出现可以同时被m和n整除的数,就是最大公约数 //连续整数检测法 public in…
其实这个题目如果没有限制时间复杂度的话,那么就很简单了,一遍一遍地扫描吧.时间复杂度肯定就是 O(n2)啰.但是这题目肯定不会这么简单,否则就是小学生的水平了嘛. 其实我刚到这题的时候想到的是用二叉查找的方法进行.但是可能有点困难. 书上提供的方法固然是很巧妙的. 我们要抓住题目中数组的特点,是排好序的. 我们先定义两个指针.一个指头,一个指尾. 我们来计算start+end=16>15.于是知大了,咋办? 我们将end往后移一位.也就是如下了: 些时 1+11=12<15..咋办? 肯定是将…
什么是辗转相除法? 辗转相除法(又名欧几里德算法),它主要用于求两个正整数的最大公约数.是已知的最古老的算法. 用辗转相除法求132和72的最大公约数的步骤: 132 / 72 = 1 ... 60 72  /  60 = 1 ... 12 60 /  12  = 5 所以他们的最大公约数就是12. 如何实现辗转相除法? 我们把要求的两个数定为a和b(a > b). 首先算1.a / b = c ... r 接着2.a = b, b = r,并判断r是否是0.若不为零则重复1,若为0则输出除数,…
java 整型int占4个字节32位,两个数异或后移动31位判断结果,如果是1则异号,如果是0则同号 public class ShowEnviromentViarible { public static void main(String[] args) { int num1 = 1; int num2 = -1; System.out.println("num1 = " + num1); System.out.println("num2 = " + num2);…