上机2 Java基本数据 控制结构

一、上机目的

  1.掌握Eclipse环境的使用。

     2.掌握基本数据类型及基本类型数组的使用方法

  3.掌握Java控制结构中的控制语句和循环语句及其使用方法。

二、上机内容

1..编程求10以内整数的和。

public class Sum {
	public static void main(String[] args) {
		int sum=0;
		for(int i=1;i<=10;i++){
		sum+=i;
		}
		System.out.print("10以内的数之和为:"+sum);
	}

}

2.编程实现将由键盘输入的十进制正整数转换为二进制数,并输出转换后的二进制结果。

import java.util.Scanner;
public class Change {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		System.out.println("请输入一个十进制数:");
		int num1 =in.nextInt();
		//Integer.toBinaryString():可将十进制转换为二进制
		String num2=Integer.toBinaryString(num1);
		System.out.println("该数对应的二进制数为:"+num2);
		in.close();
	}
}

3.编程实现由键盘输入的年份是否为闰年,要求采用方法调用的方式实现。

import java.util.Scanner;

public class Year {
	
	static boolean isLeapYear(int year) {
		if((year%4==0 && year%100!=0)||year%400==0) {
			return true;
		}else;{
			return false;
		}
	}
	
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		System.out.println("请输入一个年份");
		int year = in.nextInt();
		if(isLeapYear(year)==true) {
			System.out.println(year+"是闰年");
		}else {
			System.out.println(year+"是平年");
		}
		
	}
}

4. 编程求s=1!+2!+…+n!(n从键盘输入),采用方法调用的方式实现。

import java.util.Scanner;
public class JieCheng {
	//定义阶乘方法,为防止溢出将数据类型定义为long型
	static long factorial(int n) {
		long num=1;
		for(int j=1;j<=n;j++) {
			num *=j;
		}
		return num;
	}
	
	public static void main(String[] args) {
		Scanner in=new Scanner(System.in);
		System.out.println("请输入一个数:");
		int a=in.nextInt();
		long sum=0;
		for(int i=1;i<=a;i++) {
			sum += factorial(i);
		}
		System.out.println("1~"+a+"以内的数的阶乘和为"+sum);
	}
}

5. 编程求s=1-2+3-4+…+99-100。

public class Sum2 {
	public static void main(String[] args) {
		int num;
		int temp;
		int sum1=0;
		int sum2=0;
		for(num=1;num<101;num++) {
			if(num%2!=0) {
				sum1 +=num;//计算奇数和
			}else {
				temp=-num;
				sum2 +=temp;//计算偶数和
			}
		}
		int sum3=sum1+sum2;
		System.out.println("1-2+3-4+…+99-100="+sum3);
	}
}

6. 试编写一个程序,其功能是:从键盘输入一个整数,输出这个数的每位数字之和。

例如:输入245789,输出35。

import java.util.Scanner;
public class Sum3 {
	public static void main(String[] args) {
		Scanner in =new Scanner(System.in);
		System.out.println("请输入一个整数:");
		int num = in.nextInt();
		int sum=0;
		while(num>0){
			//逐步获取从最低位到最高位的数字
			sum += num%10;
			num = num/10;			
		}
		System.out.println("各位数之和为:"+sum);
		in.close();
	}
}

7. 设计并实现一个要求用户输入两个数并猜测两数之和的程序。如果用户猜对结果,就显示祝贺消息,否则显示慰问信息以及正确答案。

import java.util.Scanner;
public class Guess {
	public static void main(String[] args) {
		/*设计并实现一个要求用户输入两个数并猜测两数之和的程序
		  如果用户猜对结果,就显示祝贺消息,否则显示慰问信息以及正确答案
		 */
		Scanner in = new Scanner(System.in);
		System.out.println("请输入第一个整数:");
		double num1=in.nextDouble();
		System.out.println("请输入第二个整数:");
		double num2=in.nextDouble();
		System.out.println("请猜下这两数之和:");
		int sum1=in.nextInt();
		double sum2=num1+num2;
		if(sum1==sum2) {
			System.out.println("恭喜您答对了");
		}else {
			System.out.println("很抱歉答错了,正确答案为:"+sum2);
		}
		in.close();	
	}
}

8 编写程序,一列数的规律如下:1、1、2、3、5、8、13、21、34……

求这列数的第30个数是多少。

public class Fibonacci {
	static int fibonacci(int x) {
		if(x==1||x==2) {
			return 1;
		}else {
			return fibonacci(x-1)+fibonacci(x-2);
		}
	}
	public static void main(String[] args) {
	int num =30;
	System.out.println("斐波那契数列的第"+num+"个数为"+fibonacci(30));
	}
}

9*.输入年月日,输出这一天的前一天。

import java.util.Scanner;
public class BeforeDay {
	public static void ForeData(int year,int month,int day) {
		
		//判断闰年,且输入日期为3月1日
		if(year%4==0 && year%100!=0&&month==3&&day==1) {
			month = month-1;
			day=29;
			System.out.printf("%d",year);
			System.out.printf("年");
			System.out.printf("%d",month);
			System.out.printf("月");
			System.out.printf("%d",day);
			System.out.printf("日");			
		}else if(month==3&&day==1) {
			month = month-1;
			day=28;
			System.out.printf("%d",year);
			System.out.printf("年");
			System.out.printf("%d",month);
			System.out.printf("月");
			System.out.printf("%d",day);
			System.out.printf("日");		
			
			//处理1月1日
		}else if(month==1&&day==1) {
			year=year-1;
			month = 12;
			day=31;
			System.out.printf("%d",year);
			System.out.printf("年");
			System.out.printf("%d",month);
			System.out.printf("月");
			System.out.printf("%d",day);
			System.out.printf("日");	
			
			//小月,1号
		}else if(month==2&&day==1||month==4&&day==1||month==6&&day==1||month==9&&day==1||month==11&&day==1) {
			month = month-1;
			day=31;
			System.out.printf("%d",year);
			System.out.printf("年");
			System.out.printf("%d",month);
			System.out.printf("月");
			System.out.printf("%d",day);
			System.out.printf("日");	
			
			//大月,1号
		}else if(month==3&&day==1||month==5&&day==1||month==7&&day==1||month==8&&day==1 ||month==10&&day==1 ||month==12&&day==1) {
			month = month-1;
			day=30;
			System.out.printf("%d",year);
			System.out.printf("年");
			System.out.printf("%d",month);
			System.out.printf("月");
			System.out.printf("%d",day);
			System.out.printf("日");			
	    }else {
	    	day=day-1;
	    	System.out.printf("%d",year);
			System.out.printf("年");
			System.out.printf("%d",month);
			System.out.printf("月");
			System.out.printf("%d",day);
			System.out.printf("日");			
	    }

}
	public static void ErrorTip(int i) {
		System.out.println("输入的整数不合法");
	}
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		System.out.println("请输入年份");
		int year = in.nextInt();
		if(year>1998&&year<2050) {
			System.out.println("请输入月份:");		
		}else {
			ErrorTip(year);		
		}
		int month= in.nextInt();
		if(month>0&&month<13) {
			System.out.println("请输入具体几号:");		
		}else {
			ErrorTip(month);		
		}
		int day=in.nextInt();
		if(year%4==0 && year%100!=0&&month==2) {
			if(day>0&&day<30) {
				ForeData(year, month, day);
			}else {
				ErrorTip(day);
			}
		}else if(month==2){
			if(day>0&&day<29) {
				ForeData(year, month, day);
			}else {
				ErrorTip(day);
			}
		}else if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) {
			if(day>0&&day<32) {
				ForeData(year, month, day);
			}else {
				ErrorTip(day);
			}
		}else{
			if(day>0&&day<31) {
				ForeData(year, month, day);
			}else {
				ErrorTip(day);
			}
		
	}
}
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值