Java基础语法实战系统总结6(陆续上传中...)

[b]逆向输出数字(正整数)?[/b]
如:正整数32496,逆向输出为69423;
FanInputNum.java
// 原理:首先分离最低位,即与10取余即可,然后抛弃最低位,再把当前位看成最低位,以此推下去...
// 如:456786 首先是6 然后再把8看做最低位.....

public class FanInputNum{
public static void main(String args[]){
int number = (int)(Math.random()*1000000);// 产生1000000以内的正整数
int remainder;
System.out.println("要处理的数字: " + number);
System.out.print("逆向输出的数字是 : ");
while(number > 0){ //循环直到数字为0为止
remainder = number % 10;//分离出个位
System.out.print(remainder);
number /= 10;
}
}
}
[b]
求斐波那契数列(Fibonacci数列)?[/b]
Kn = 1; 当n=1或2时
Kn=Kn-1 + Kn-2 当n>=3时 (Kn-1,n-1是K的下标)
即从第三项起,每一项都是它前两项之和。
// 原理:
// 从第3项开始,每一项都是它的前两项之和;1 1 2 3 5 8 13 21.........
// 定义为整型时,第47项会超出整型的范围
public class Finonacci{
public static void main(String args[]){
int k1=1,k2 =1, k3;
// 输出前2位数
System.out.print(k1 + " " + k2 + " ");
for(int i=3;i<=24; i++){
k3 = k1 + k2;
System.out.print(k3 + " ");
if(i%8 == 0)
{ // 每行输出8项
System.out.println();
}
//开始迭代,保存最近2项的值
k1 = k2;
k2 = k3;

}
}
}

[b]求最大公约数和最小公倍数?[/b] GcdAndGcm.java

// 随机产生:
// 两种方法:1.给定义个数r,它的初始值为min(n,m)起,测试它是否能同时被m和n整除,如果不能
// ,则将其值减1,再测试。依次类推,一旦它能被两个整数整除,那么这个r 就是最大
公约数,但这方法效率低下;
// 主要采用如下方法:
// 2.采用欧几里得辗转相除法 1.求余数,r=m%n 2.设m<--n,n<--r 3.若r==0,则m为最大公约数,
// 退出循环,否则转到1步
public class GcdAndGcm{
public static void main(String args[]){
int m = (int)(Math.random()*1000);
int n = (int)(Math.random()*1000);
int r;
int sm=m,sn=n; // 保存这2个数的值
// 下面的循环根据辗转相除法球最大公约数
do{
r = m%n;
m = n;
n = r;
}
while(r>0);
// 循环结束,最大公约数存放在m中
System.out.println(sm +"和" + sn + "最大公约数是:" + m);
System.out.println(sm +"和" + sn + "最小公倍数是:" + sm*sn/m);

}
}

你可能感兴趣的:(Java基础语法实战系统总结6(陆续上传中...))