1.题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
//这是一个菲波拉契数列问题
public class lianxi01{
public static void main(String[] args){
System.out.println("第1个月数量:1");
System.out.println("第2个月数量:1");
int f1=1,f2=1,f,M=24;
for(int i=3;i<=M;i++)
{
f=f1*2;f=f+f2;f=f-f1;//f=f1+f2;
f1=f2;
f2=f;
System.out.println("第"+i+"月数量:"+f);
}
}
}
//Analyse:第a个月的兔子,在第a2个月都能翻倍,而第a2个月的兔子还包括了a个月的一部分在a1个月生下的这一部分(这部分数量在a2个月是不变的因为其还不能生产.所以(a2)=(a*2)+(a1-a)=a+a1;
2.题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。
public class lianxi02{
public static void main(String arg[]){
int b1,b2,b3;
for(int i=100;i<1000;i++){
b1=i/100;
b2=i%100/10;
b3=i%10;
if((b1*b1*b1+b2*b2*b2+b3*b3*b3)==i)
System.out.println(i);
}
}
}
3.题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
import java.util.*;
public class lianxi03{
public static void main(String arg[]){
Scanner s=new Scanner(System.in);
System.out.print("Please input an int:");
int n = s.nextInt();
int k=2;
System.out.print(n+"=");
while(k<=n){
if(k==n){
System.out.println(n);
break;
}else if(n%k==0){
System.out.print(k+"*");
n=n/k;
}else
k++;
}
}
}
4.题目:利用条件运算符的嵌套来完成此题:学习成绩> =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
import java.util.*;
public class lianxi04{
public static void main(String args[]){
int x;
char grade;
Scanner s= new Scanner(System.in);
System.out.print("Please input the score:");
x=s.nextInt();
grade=x>=90?'A':x>=60?'B':'C';
System.out.println("The grade is:"+grade);
}
}
5.题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
/**在循环中,只要除数不等于0,用较大数除以较小的数,将小的一个数作为下一轮循环的大数,取得的余数作为下一轮循环的较小的数,如此循环直到较小的数的值为0,返回较大的数,此数即为最大公约数,最小公倍数为两数之积除以最大公约数。* /
import java.util.*;
public class lianxi05{
public static void main(String args[]){
int a,b,m,n;
Scanner s= new Scanner(System.in);
System.out.print("Please input an integer:");
a=s.nextInt();
System.out.print("Please input another integer:");
b=s.nextInt();
deff cd =new deff();
m=cd.deff(a,b);
n=a*b/m;
System.out.println("最大公约数:"+m);
System.out.println("最小公倍数"+n);
}
}
class deff{
public int deff(int x,int y){
int t;
if(x<y){
t=x;
x=y;
y=t;
}
while(y!=0){
if(x==y)return x;
else{
int k=x%y;
x=y;
y=k;
}
}
return x; }
}
6.题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
import java.util.*;
public class lianxi06 {
public static void main(String[] args) {
int digital = 0;
int character = 0;
int other = 0;
int blank = 0;
char[] ch = null;
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
ch = s.toCharArray();
for(int i=0; i<ch.length; i++) {
if(ch[i] >= '0' && ch[i] <= '9') {
digital ++;
} else if((ch[i]>= 'a' && ch[i] <= 'z') || ch[i] > 'A' && ch[i] <= 'Z') {
character ++;
} else if(ch[i] == ' ') {
blank ++;
} else {
other ++;
}
}
System.out.println("数字个数: " + digital);
System.out.println("英文字母个数: " + character);
System.out.println("空格个数: " + blank);
System.out.println("其他字符个数:" + other );
}
}
7.题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
import java.util.*;
public class lianxi07{
public static void main(String args[]){
long a,b=0L,sum=0L;
Scanner s=new Scanner(System.in);
System.out.print("数字a的值:");
a = s.nextInt();
System.out.print("项数:");
int m=s.nextInt();
int i=0;
while(i<m){
b=a+b;
sum=sum+b;
a=a*10;
i++;
}
System.out.print(sum);
}
}
8.使用Java语言编写代码,将一个正整数分解质因数,例如:输入90,打印输出90=2*3*3*5。
import java.util.Scanner;
/*使用Java语言编写代码,将一个正整数分解质因数,例如:输入90,打印输出90=2*3*3*5。*/
public class Math {
public static void main(String []args){
int n,i;
System.out.println("\nPlease input a number:\n");
Scanner input = new Scanner(System.in);
n = input.nextInt();
System.out.println(n);
for(i=2;i<=n;i++){
while(n!=i){
if(n%i==0){
System.out.print(i+"x");
n=n/i;
}else {
break;
}
}
}
System.out.println(n);
}
}