Java基础经典小程序.docx
《Java基础经典小程序.docx》由会员分享,可在线阅读,更多相关《Java基础经典小程序.docx(26页珍藏版)》请在冰点文库上搜索。
Java基础经典小程序
1、计算1到某个数的和
代码如下
java.util.Scanner;
Test1{
main(String[]args){
//1.计算1到某个数的和
Scannerscan=Scanner(System.in);
System.out.println("请输入您要求累加和的数");
num=add(scan.nextInt());
System.out.println("您要求的累加和为"+num);
}
/**
*该函数的功能为完成从1~某数的累加和并返回
*@parama
*@return
*/
/*staticintadd(inta){
intnum=0;
for(inti=1;i<=a;i++){
num+=i;
}
returnnum;
}*/
add(a){
(a==1){
1;
}{
a+add(a-1);
}
}
}
运行结果如下
2、计算从1到某个值以内所有奇数的和。
代码如下
java.util.Scanner;
Test16{
main(String[]args){
Scannerscan=Scanner(System.in);
System.out.println("请输入您要求累加和的数");
num=add(scan.nextInt());
System.out.println("您要求的累加和为"+num);
}
/**
*计算从1到某个值以内所有奇数的和。
*@parama
*@return
*/
add(a){
num=0;
(a%2==0){
a--;
}
(a==1){
1;
}{
num+=a;
num+add1(a-2);
}
}
}
运行结果如下
3、计算从1到某个值以内所有能被3或者17整除的数的和并输出。
代码如下
java.util.Scanner;
Test3{
main(String[]args){
Scannerscan=Scanner(System.in);
System.out.println("请输入您要求累加和的数");
num=add(scan.nextInt());
System.out.println("您要求的累加和为"+num);
}
/**
*计算从1到某个值以内所有能被3或者17整除的数的和并输出。
*@parama
*@return
*/
add(a){
num=0;
(i=1;i<=a;i++){
(i%3==0||i%17==0){
num+=i;
}
}
num;
}
}
运行结果如下
4、计算1到某个值以内能被7或者3整除但不能同时被这两者整除的数的个数。
代码如下
java.util.Scanner;
Test4{
main(String[]args){
Scannerscan=Scanner(System.in);
System.out.println("请输入您要判断的数");
num=sum(scan.nextInt());
System.out.println("共"+num+"个");
}
/**
*4.计算1到某个值以内能被7或者3整除但不能同时被这两者整除的数的个数。
*@parama
*@return
*/
sum(a){
num=0;
(i=1;i<=a;i++){
(i%3==0^i%7==0){
num++;
}
}
num;
}
}
运行结果如下
5、计算1到某个值以内能被7整除但不是偶数的数的个数。
代码如下
java.util.Scanner;
Test5{
main(String[]args){
Scannerscan=Scanner(System.in);
System.out.println("请输入您要判断的数");
num=sum(scan.nextInt());
System.out.println("共"+num+"个");
}
/**
*计算1到某个值以内能被7整除但不是偶数的数的个数。
*@parama
*@return
*/
sum(a){
num=0;
(i=1;i<=a;i++){
(i%2!
=0&&i%7==0){
num++;
}
}
num;
}
}
运行结果如下
6、给定一个年份,判断是否是闰年。
A:
能被4整除,并且不能被100整除(2020)
B:
或者能被400整除。
代码如下
java.util.Scanner;
Test6{
main(String[]args){
Scannerscan=Scanner(System.in);
System.out.println("请输入您要判断的年份");
Stringn=judge(scan.nextInt());
System.out.println(n);
}
/**
*判断是否为闰年
*@parama
*@return
*/
Stringjudge(a){
(a%400==0||(a%4==0&&a%100!
=0)){
a+"该年份为闰年";
}{
a+"该年份是平年";
}
}
}
运行结果如下
7、定义三个重载方法max(),
第一个方法求两个int值中的最大值,第二个方法求两个double值中的最大值, 第三个方法求三个double值中的最大值,并分别调用三个方法。
代码如下
Test7{
main(String[]args){
n=max(20,19);
m=max(8.9,10.2);
l=max(20.0,12.0,2.0);
System.out.println("两个整数比较后的最大数为:
"+n);
System.out.println("两个double类型的数比较后的最大数为:
"+m);
System.out.println("三个double类型的数比较后的最大数为:
"+l);
}
/**
*第一个方法求两个int值中的最大值,
*@parama
*@paramb
*@return
*/
max(a,b){
a>b?
a:
b;
}
/**
*第二个方法求两个double值中的最大值
*@parama
*@paramb
*@return
*/
max(a,b){
a>b?
a:
b;
}
/**
*第三个方法求三个double值中的最大值
*@parama
*@paramb
*@paramc
*@return
*/
max(a,b,c){
num=a>b?
a:
b;
num>c?
num:
c;
}
}
运行结果如下
8、写一个函数,接受一个整数,输出这个整数是几位数
代码如下
java.util.Scanner;
Test16{
main(String[]args){
Scannerscan=Scanner(System.in);
System.out.println("请输入您要判断的数:
");
System.out.println("您输入的整数位数为:
"+judge(scan.nextInt()));
}
/**
*写一个函数,接受一个整数,输出这个整数是几位数
*/
judge(a){
s=0;
(a%10==a){
1;
}{
a=a/10;
s++;
s+judge(a);
}
}
}
运行结果如下
9、判断101-200之间有多少个素数,并输出所有素数。
代码如下
Test00000{
main(String[]args){
System.out.print("共"+fine()+"个素数");
}
/**
*判断101-200之间有多少个素数,并输出所有素数。
*@parama
*@paramb
*@return
*/
fine(){
sum=0,count=0;
(i=101;i<=200;i++){
(j=2;j
(i%j==0){
count++;
;
}
}
(count==0){
System.out.print(""+i);
sum++;
}{
count=0;
}
}
sum;
}
}
运行结果如下
10、输入三个整数x,y,z,请把这三个数由小到大输出。
代码如下
java.util.Scanner;
Test000{
main(String[]args){
Scannerscan=Scanner(System.in);
[]num=[3];
(i=0;i<3;i++){
System.out.println("请输入您要判断的第"+(i+1)+"个整数");
num[i]=scan.nextInt();
}
System.out.println("您输入的三个数从小到大依次为");
max(num);
}
/**
*@parama
*@paramb
*@return
*/
max([]num){
(i=0;i(j=0;j(num[j]>num[j+1]){
temp=num[j];
num[j]=num[j+1];
num[j+1]=temp;
}
}
}
(i=0;iSystem.out.print(num[i]+"");
}
}
}
运行结果如下
11、求1+2!
+3!
+...+20!
的和
代码如下
Test000{
main(String[]args){
System.out.println("求1+2!
+3!
+...+20!
的和为"+sum(20));
}
/**
*计算求1+2!
+3!
+...+20!
的和
*/
sum(a){
sum=1;
(a==1){
sum;
}{
(i=1;i<=a;i++){
sum*=i;
}
sum+sum(a-1);
}
}
}
运行结果如下
12、有5个人坐在一起,问第五个人多少岁?
他说比第4个人大2岁。
问第4个人岁数,他说比第3个人大2岁。
问第三个人,又说比第2人大两岁。
问第2个人,说比第一个人大两岁。
最后问第一个人,他说是10岁。
请问第五个人多大?
代码如下
java.util.Scanner;
Test00000{
main(String[]args){
Scannerscan=Scanner(System.in);
System.out.println("请问第一个人您几岁:
");
judge(scan.nextInt());
}
/**
*2.有5个人坐在一起,问第五个人多少岁?
*他说比第4个人大2岁。
问第4个人岁数,5---18
*他说比第3个人大2岁。
问第三个人,4---16
*又说比第2人大2岁。
问第2个人,3---14
*说比第一个人大2岁。
最后问第一个人,2---12
*他说是10岁。
请问第五个人多大?
1---10
*/
judge(a){
(i=1;i<=5;i++){
System.out.println("第"+i+"个人"+a+"岁");
a=a+2;
}
}
}
运行结果如下
13、给一个不多于5位的正整数,
要求:
一、求它是几位数,二、逆序打印出各位数字。
代码如下
java.util.Scanner;
Test00000{
main(String[]args){
Scannerscan=Scanner(System.in);
System.out.println("请输入您要判断的数:
");
num=scan.nextInt();
System.out.println("您输入的整数各个位上的数倒叙为:
");
System.out.println("您输入的数位数为:
"+judge(num));
}
/**
*给一个不多于5位的正整数,要求:
一、求它是几位数,二、逆序打印出各位数字。
*@parama
*@return
*/
intjudge(a){
s=0;
(a%10==a){
System.out.println(a);
return1;
}{
System.out.print(a%10+"");
a=a/10;
s++;
returns+judge(a);
}
}
}
运行结果如下
14.一个5位数,判断它是不是回文数。
即12321是回文数,个位与万位相同,十位与千位相同
代码如下
java.util.Scanner;
Test00000{
main(String[]args){
Scannerscan=Scanner(System.in);
System.out.println("请输入您要判断的5位数:
");
a=scan.nextInt();
judge(a);
}
/**
*一个5位数,判断它是不是回文数。
即12321是回文数,个位与万位相同,十位与千位相同
*@parama
*@return
*/
judge(a){
[]num=[5];
(i=0;i<5;i++){
num[i]=a%10;
a=a/10;
}
(num[0]!
=num[4]){
System.out.println("对不起,您输入的数不是回文数");
}(num[1]!
=num[3]){
System.out.println("对不起,您输入的数不是回文数");
}{
System.out.println("恭喜您!
您输入的数是回文数");
}
}
}
运行结果如下
15、万年历
代码如下
java.util.Scanner;
Test00000{
main(String[]args){
Scannerscan=Scanner(System.in);
System.out.println("请输入您要查询的年份");
a=scan.nextInt();
System.out.println("请输入您要查询的月份");
b=scan.nextInt();
//判断输入年份是否为闰年
(year(a)>365){
System.out.println("该年份为闰年");
}{
System.out.println("该年份为平年");
}
//输出该月在该年份的总天数
System.out.println("该年该月共"+moDay(a,b)+"天");
//该月距离该年1月1日共多少天
System.out.println("该月距离您输入年份的1月1日共"+days(1,a,b)+"天");
//该月份离1900年1月1日共多少天
System.out.println("本年该月份离1900年1月1日共"+days(2,a,b)+"天");
//格式化日历并输出
put(a,b);
}
/**
*判断输入年份是否为闰年并返回该年份的天数
*@parama
*@return
*/
year(a){
(a%400==0||a%4==0&&a%100!
=0){
366;
}{
365;
}
}
/**
*计算输入月份在输入年份中共多少天
*@paramb
*@return
*/
month(b){
[]mot={31,28,31,30,31,30,31,31,30,31,30,31};
(b/100!
=0){
b=b-100;
mot[1]=29;
(i=0;i((b-1)==i){
mot[i];
}
}
}{
(i=0;i((b-1)==i){
mot[i];
}
}
}
0;
}
/**
*计算输年份的月份距离1900年1月1日共多少天
*@parama
*@paramb
*@paramc
*@return
*/
days(a,x,c){
day=0;
(a==1){
/*
*如果a=1,则表示用户输入的年份为1900年
*或者是计算该月距离输入年份1月1日共多少天
*/
(i=1;iday+=moDay(x,i);
}
day;
}(a==3){
/*
*如果a=3
*表示用户输入的年份在1900以内,
*此时计算该年该月距离1900年一月一日的总天数使用本方法
*/
(i=c+1;i<=12;i++){
day+=moDay(a,x);
}
day;
}{
(x>1900){
/*
*表示用户输入的年份在1900以外,
*此时计算该年该月距离1900年一月一日的总天数使用本方法
*/
y=x-1900;
(i=1900;i<=x-1;i++){
year=year(i);
(year==366){
day+=366;
}{
day+=365;
}
}
day+days(1,x,c);
}(x<1900){
/*
*表示用户输入的年份在1900以内,
*此时计算该年该月距离1900年一月一日的总天数使用本方法
*/
y=1900-x;
(i=x+1;i<1900;i++){
year=year(i);
(year==366){
day+=366;
}{
day+=365;
}
}
day+days(3,x,c);
}{
day+days(1,x,c);
}
}
}
/**
*根据年份计算该月份的总天数并返回
*@parama
*@paramb
*@return
*/
moDay(a,b){
((year(a))>365){
month(b+100);
}{
month(b);
}
}
/**
*格式化万年历
*@parama
*@paramb
*/
put(a,b){
mDay=moDay(a,b);
s=0;
System.out.println("该年该月份的日历如下:
");
System.out.print("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六\t");
(i=-((days(2,a,b)+1)%7);i<=mDay;i++){
(i<=0){
System.out.print(""+'\t');
}{
System.out.print(i+""+'\t');
}