目录
一、java语言基础训练
7-1 计算钱币
编写程序,读取用户输入的代表总金额的double值,打印表示该金额所需的最少纸币张数和硬币个数,打印从最大金额开始。纸币的种类有十元、五元、一元,硬币的种类有五角、一角、贰分、壹分。
输入格式:
47.63
输出格式:
4 张十元 1 张五元 2 张一元 1 个五角 1 个一角 1 个贰分 1 个壹分
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
double n=sc.nextDouble();
System.out.println((int)n/10+" 张十元");
n%=10;
System.out.println((int)n/5+" 张五元");
n%=5;
System.out.println((int)n+" 张一元");
double t=n*100%100/10;
System.out.println((int)t/5+" 个五角");
t%=5;
System.out.println((int)t+" 个一角");
double p=n*100%100%10;
System.out.println((int)p/2+" 个贰分");
p%=2;
System.out.println((int)p+" 个壹分");
}
}
7-2 sdut-温度转换
输入一个华氏温度,输出摄氏温度,其转换公式为:C=5(F-32)/9。
输入格式:
输入数据只有一个实数,即华氏温度。
输出格式:
输出数据只有一个,即摄氏温度,保留2位小数。
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
double n=sc.nextDouble();
System.out.printf("%.2f",5*(n-32)/9);
}
}
7-3 输入半径计算圆的面积
从控制台输入半径,计算圆的半径。其中PI=3.14159
输入格式:
输入圆的半径
输出格式:
输出一行面积信息
输入样例:
10
输出样例:
The area for the circle of radius 10.0 is 314.159
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
double r=sc.nextDouble();
double s=r*r*3.14159;
System.out.printf("The area for the circle of radius %.1f is %.3f\n",r,s);
}
}
7-4 求一个三位正整数各位数字之和
求一个三位正整数各位数字之和
输入格式:
输入一个三位的正整数
输出格式:
输出百十个位上各位数字的和
输入样例:
678
输出样例:
21
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int sum=0;
while(n>0)
{
sum+=n%10;
n/=10;
}
System.out.print(sum);
}
}
二、程序流程控制结构
6-2 数字校验
本题要求实现一个函数,校验一个13位正整数号码是否正确。13位号码的最后一位是校验码。通过对前12位数字的加减乘除运算得到一个一位数字,如果和第13位数字相同,表示正确的号码。
1、从最右边第12位开始间隔一位个位数相加,然后乘7。
2、剩下的其余数字相加,然后乘2 。
3、再把两者加起来,除以10取余数
4、和第13位相校验,匹配就正确,不匹配则错误。
输入样例1:
在这里给出一组输入。例如:
1234567890126
输出样例1:
在这里给出相应的输出。例如:
The checksum of 1234567890126 is correct
public static boolean checksum(long code)
{
int s1=0,s2=0,cnt=12;
long ck=code%10l;
code/=10;
while(cnt>0)
{
if(cnt%2==0) s1+=code%10;
else s2+=code%10;
cnt--;
code/=10;
}
s1*=7;
s2*=2;
int s=(s1+s2)%10;
if(s==ck) return true;
return false;
}
7-1 闰年判断
问题描述
给定一个年份,判断这一年是不是闰年。
当以下情况之一满足时,这一年是闰年:
- 年份是4的倍数而不是100的倍数;
- 年份是400的倍数。
其他的年份都不是闰年。输入格式:
输入包含一个整数y,表示当前的年份。数据规模与约定 1990 <= y <= 2050。
输出格式:
输出一行,如果给定的年份是闰年,则输出yes,否则输出no。
说明:当试题指定你输出一个字符串作为结果(比如本题的yes或者no,你需要严格按照试题中给定的大小写,写错大小写将不得分。输入样例:
在这里给出一组输入。例如:
2013
输出样例:
在这里给出相应的输出。例如:
no
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
int y=sc.nextInt();
boolean f=false;
if((y%4==0&&y%100!=0)||y%400==0) f=true;
if(f) System.out.print("yes");
else System.out.print("no");
}
}
7-2 身体质量指数(BMI)测算
输入格式:
两个数值:体重(以千克为单位),身高(以米为单位),数值间以空格分隔。例如:65.5 1.75。
注意:体重的世界纪录是727公斤,身高的世界纪录是2.72米。输入数据上限不得超过纪录,下限不得小于等于0;输出格式:
输入数值超出范围 :输出“input out of range”。例如:-2 3或者125 5。
BMI小于18.5 :输出“thin”。
BMI大于等于18.5小于24 :输出“fit”。
BMI大于等于24小于28 :输出“overweight”。
BMII大于等于28 :输出“fat”。
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
double w=sc.nextDouble(),h=sc.nextDouble();
double bmi=w/(h*h);
if(w<=0||w>727||h<=0||h>2.72) System.out.println("input out of range");
else
{
if(bmi<18.5) System.out.print("thin");
else if(bmi<24) System.out.print("fit");
else if(bmi<28) System.out.print("overweight");
else System.out.print("fat");
}
}
}
7-3 倒顺数字串
输入正整数n,输出它的倒顺数字串。如n=6时,输出
1 2 3 4 5 6 5 4 3 2 1
输入格式:
输入一个正整数n,n的范围是[1,50]。
输出格式:
n的倒顺数字串,每两个数字之间只用一个空格隔开。
import jav