(6.2~6.9节)+(6.10~6.11节)+(6.10~6.12节)
(综合题还未写,以后会更新)
(6.2~6.9节)
6.1(数学:五角数)
import java.util.Scanner;
public class S1 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.print("请问您想要显示前 几个个五角数:");
int m=input.nextInt();// 显示前 m个五角数
input.close();
int count=0;
int shu=0;
for(int n=1; n<=m; n++) {
count++;
shu=getPentagonalNumber(n);
if(count%10==0) {
System.out.println(shu);
}
else {
System.out.print(shu + " ");
}
}
}
//得到五角数的方法
public static int getPentagonalNumber(int n) {
return n*(3*n-1)/2 ;
}
}
*6.2(求一个整数各位数字之和)
import java.util.Scanner;
public class S2 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.print("请问您输入一个整数:");
int n=input.nextInt();
input.close();
int total=sumDigit(n);
System.out.println("这个整数的个位数之和为:" + total);
}
public static int sumDigit(long n) {
int sum=0;
int count=0;
while(n%10!=0) {
count=(int) (n%10);
sum=sum+count;
n= n/10;
}
return sum;
}
}
**6.3(回文整数)
import java.util.Scanner;
public class S3 {
public static void main(String[] args) {
//回文数,如:(单数)1234321 、(偶数)124421
Scanner input=new Scanner(System.in);
System.out.print("请问您输入一个整数:");
int number=input.nextInt();
input.close();
if(isPalindrome(number))
System.out.println("Yes! "+number+" 是回文数.");
else
System.out.println("No. "+number+" 不是回文数.");
}
//该方法将一个整数反向倒置显示。例如,456——>654
public static int reverse(int number) {
String s="";
while(number%10!=0) {
s= s + number%10;
number=number/10;
}
int count= Integer.parseInt(s);
return count;
}
public static boolean isPalindrome(int number) {
if(number==reverse(number))
return true;
else
return false;
}
}
*6.4(反向显示一个整数)
import java.util.Scanner;
public class S4 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.print("请问您输入一个整数:");
int number=input.nextInt();
input.close();
reverse(number);
}
public static void reverse(int number) {
String s="";
while(number%10!=0) {
s= s + number%10;
number=number/10;
}
int count= Integer.parseInt(s);
System.out.print(count);
}
}
*6.5(对三个数排序)
import java.util.Scanner;
public class S5 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.print("请输入三个数:");
double n1=input.nextDouble();
double n2=input.nextDouble();
double n3=input.nextDouble();
displaySortedNumbers(n1,n2,n3);
}
private static void displaySortedNumbers(double n1, double n2, double n3) {
if(n1<n2) {
// n1 n2
if(n1>n3) {
//n3-n1-n2
System.out.print(n3+" "+n1+" "+n2);
}
else if(n1<n3){
//还要拿3和2比较
if(n2>n3)
System.out.println(n1+" "+n3+" "+n2);
else
System.out.println(n1+" "+n2+" "+n3);
}
}
else if(n1>n2) {
// n2 n1
if(n2>n3) {
System.out.println(n3+" "+n2+" "+n1);
}
else if(n2<n3){
//拿1和3比
if(n1<n3) {
System.out.println(n2+" "+n1+" "+n3);
}
else {
System.out.println(n2+" "+n3+" "+n1);
}
}
}
}
}
*6.6(显示图案)
import java.util.Scanner;
public class S6 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.print("请问您输入一个整数:");
int n=input.nextInt();
input.close();
dispalyPattern(n);
}
private static void dispalyPattern(int n) {
for(int line = 1;line <= n;line++)
{
// Display the spaces
for(int i = 1;i <= 2 * (n - line);i++)
System.out.print(" ");
for(int i = line;i >= 1;i--)
System.out.printf("%d ",i);
System.out.print("\n");
}
System.out.print("\n");
}
}
*6.7(财务应用程序:计算未来投资价值)
import java.util.Scanner;
public class S7 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.print("The amount invested: ");
double investmentAmount=input.nextDouble();
System.out.print("Annual interest rate: ");
double annualInterestRate=input.nextDouble();
double monthlyInterestRate=annualInterestRate/12;
input.close();
System.out.println("Years Future Value ");
for(int years=1; years<=30; years++) {
System.out.printf(
" %-3d%18.2f\n",years, futureInvestmentValue(investmentAmount,monthlyInterestRate,years) );
}
}
private static double futureInvestmentValue(double investmentAmount, double monthlyInterestRate, int years) {
double value= investmentAmount * Math.pow( (1+monthlyInterestRate/100) , 12*years) ;
return value;
}
}
6.8(摄氏度和华氏度之间的转换)
在一个包里创建两个类,我用测试类来调用其他类里面的方法: 例如,int count=s8.方法
package p6;
public class S8 {
public static double celsiusToFahrenheit(double celsius) {
double fahrenheit=(9.0/ 5) * celsius + 32;
return fahrenheit;
}
public static double fahrenheitToCelsius(double fahrenheit) {
double celsius=(5.0/ 9) * (fahrenheit - 32);
return celsius;
}
}
package p6;
public class Test {
public static void main(String[] args) {
System.out.println("摄氏温度 华氏度 华氏度 摄氏度");
System.out.println("——————————————————————————————————————————————————————");
for(double celsius=40.0, fahrenheit=120.0; celsius>=31.0 && fahrenheit>=30.0; celsius--,fahrenheit=fahrenheit-10) {
System.out.printf("%-13.1f%-15.1f %-10.1f%-10.2f \n", celsius, S8.celsiusToFahrenheit(celsius), fahrenheit, S8.fahrenheitToCelsius(fahrenheit));
}
}
}
6.9(英尺和米之间的转换)
一个包里创建的两个类
扫描二维码关注公众号,回复:
10853404 查看本文章
package p6;
public class S9 {
//英尺转换米
public static double footToMeter(double foot) {
double meter= 0.305 * foot;
return meter;
}
//米转换为英尺
public static double meterToFoot(double meter) {
double foot= 3.279 * meter;
return foot;
}
}
package p6;
public class Test {
public static void main(String[] args) {
System.out.println("英尺 米 米 英尺");
System.out.println("——————————————————————————————————————————————————————");
for(double foot=1.0, meter=20.0; foot<=10.0 && meter<=65.0; foot++, meter+=5) {
System.out.printf("%4.1f%8.3f %10.1f%10.3f \n", foot, S9.footToMeter(foot), meter, S9.meterToFoot(meter));
}
}
}
6.10(使用 isPrime方法)
public class S10 {
public static void main(String[] args) {
int count=0;//记录素数的个数
int number=2;
while(number<10000) {
if(isPrime(number)) {
count++;
if(count%10==0) {
System.out.printf("%-5s\n",number);
}
else {
System.out.printf("%-5s",number);
}
}
number++;
}
System.out.println();
System.out.println("小于10000的素数个数为:"+count);
}
//判断是否为素数的方法
public static boolean isPrime(int number) {
for(int divisor=2; divisor<=number/2; divisor++) {
if(number % divisor == 0) {
return false;
}
}
return true;
}
}
6.11(财务应用程序:计算酬金)
package p6;
public class S11 {
public static void main(String[] args) {
System.out.println("销售总额 酬金");
System.out.println("——————————————————————————");
for(int salesAmount=10000; salesAmount<=100000; salesAmount+=5000) {
System.out.printf("%-6d%15.1f\n", salesAmount, computeCommission(salesAmount));
}
}
public static double computeCommission(double salesAmount){
double commission=0;
if(salesAmount<=5000)
commission=salesAmount*0.08;
else if(salesAmount<=10000)
commission=5000*0.08+(salesAmount-5000)*0.1;
else
commission=5000*0.08+(10000-5000)*0.1+(salesAmount-10000)*0.12;
return commission;
}
}
6.12(显示字符)
import java.util.Scanner;
public class S12 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("您想要从哪个字符开始一直打印到某个字符");
System.out.print("请输入第1个字符:");
String s1=input.next();
System.out.print("请输入第2个字符:");
String s2=input.next();
System.out.print("每行打印几个:");
int numberPerLine=input.nextInt();
input.close();
char ch1=s1.charAt(0);
char ch2=s2.charAt(0);
printChar( ch1, ch2, numberPerLine);
}
public static void printChar(char ch1, char ch2, int numberPerLine) {
int count=0;
for(char ch=ch1; ch<=ch2; ch++) {
count++;
if(count % numberPerLine == 0) {
System.out.println(ch);
}
else {
System.out.print(ch + " ");
}
}
}
}
*6.13(数列求和)
public class S13 {
public static void main(String[] args) {
System.out.println("i m(i)");
System.out.println("————————————————————");
for(int i=1; i<=20; i++) {
System.out.printf("%-2d%15.4f\n", i, m(i));
}
}
public static double m(int i) {
double sum=0;
for(double n=1; n<=i; n++) {
sum += n/(n+1);
}
return sum;
}
}
*6.14(估算 Π)
public class S14 {
public static void main(String[] args) {
System.out.println("i m(i)");
System.out.println("————————————————————");
System.out.printf("%-2d%16.4f\n", 1, m(1));
for(int i=101; i<=901; i+=100) {
System.out.printf("%-2d%15.4f\n", i, m(i));
}
}
public static double m(int i) {
double sum=0;
for(double n=1; n<=i; n++) {
sum += 4*(Math.pow(-1, n+1) / (2*n-1));
}
return sum;
}
}
*6.15(财务应用程序:打印税表)
不想吐槽这题了,是什么支撑老娘继续打码的┭┮﹏┭┮
package p6;
public class S15 {
public static void main(String[] args) {
System.out.println("Taxable Single Married Joint Married Head of");
System.out.println("Income Separate a House");
System.out.println("——————————————————————————————————————————————————————————————————");
for(int i=50000; i<=60000; i+=50) {
System.out.printf("%-12d%-15d%-15d%-15d%-15d\n", i, Math.round(computeTax(0,i)), Math.round(computeTax(1,i)), Math.round(computeTax(2,i)), Math.round(computeTax(3,i)));
}
}
public static double computeTax(int status, double taxableIncome) {
double tax=0;
//status为0、1、2、3针对每一种身份
if(status==0) {
if(taxableIncome<=8350)
tax=taxableIncome*0.1;
else if(taxableIncome<=33950)
tax=8350*0.1+(taxableIncome-8350)*0.15;
else if(taxableIncome<=82250)
tax=8350*0.1+(33950-8350)*0.15+(taxableIncome-33950)*0.25;
else if(taxableIncome<=171550)
tax=8350*0.1+(33950-8350)*0.15+(82250-33950)*0.25+(taxableIncome-82250)*0.28 ;
else if(taxableIncome<=372950)
tax=8350*0.1+(33950-8350)*0.15+(82250-33950)*0.25+(171550-82250)*0.28+(taxableIncome-171550)*0.33;
else
tax=8350*0.1+(33950-8350)*0.15+(82250-33950)*0.25+(171550-82250)*0.28+(372950-171550)*0.33+(taxableIncome-372950)*0.35;
}
else if(status==1) {
if(taxableIncome<=16700)
tax=16700*0.1;
else if(taxableIncome<=67900)
tax=16700*0.1+(taxableIncome-16700)*0.15;
else if(taxableIncome<=137050)
tax=16700*0.1+(67900-16700)*0.15+(taxableIncome-67900)*0.25;
else if(taxableIncome<=208850)
tax=16700*0.1+(67900-16700)*0.15+(137050-67900)*0.25+(taxableIncome-137050)*0.28;
else if(taxableIncome<=372950)
tax=16700*0.1+(67900-16700)*0.15+(137050-67900)*0.25+(208850-137050)*0.28+(taxableIncome-208850)*0.33;
else
tax=16700*0.1+(67900-16700)*0.15+(137050-67900)*0.25+(208850-137050)*0.28+(372950-208850)*0.33+(taxableIncome-372950)*0.35;
}
else if(status==2) {
if(taxableIncome<=8350)
tax=8350*0.1;
else if(taxableIncome<=33950)
tax=8350*0.1+(taxableIncome-8350)*0.15;
else if(taxableIncome<=68525)
tax=8350*0.1+(33950-8350)*0.15+(taxableIncome-33950)*0.25;
else if(taxableIncome<=104425)
tax=8350*0.1+(33950-8350)*0.15+(68525-33950)*0.25+(taxableIncome-68525)*0.28;
else if(taxableIncome<=186475)
tax=8350*0.1+(33950-8350)*0.15+(68525-33950)*0.25+(104425-68525)*0.28+(taxableIncome-104425)*0.33;
else
tax=8350*0.1+(33950-8350)*0.15+(68525-33950)*0.25+(104425-68525)*0.28+(186475-104425)*0.33+(taxableIncome-186475)*0.35;
}
else if(status==3) {
if(taxableIncome<=11950)
tax=11950*0.1;
else if(taxableIncome<=45500)
tax=11950*0.1+(taxableIncome-11950)*0.15;
else if(taxableIncome<=117450)
tax=11950*0.1+(45500-11950)*0.15+(taxableIncome-45500)*0.25;
else if(taxableIncome<=190200)
tax=11950*0.1+(45500-11950)*0.15+(117450-45500)*0.25+(taxableIncome-117450)*0.28;
else if(taxableIncome<=372950)
tax=11950*0.1+(45500-11950)*0.15+(117450-45500)*0.25+(190200-117450)*0.28+(taxableIncome-190200)*0.33;
else
tax=11950*0.1+(45500-11950)*0.15+(117450-45500)*0.25+(190200-117450)*0.28+(372950-190200)*0.33+(taxableIncome-372950)*0.35;
}
else {
System.out.println("Error: invalid status");
System.exit(1);
}
return tax;
}
}
*6.16(一年的天数)
package p6;
public class S16 {
public static void main(String[] args) {
for(int year=2000; year<=2020; year++) {
System.out.println(year+"年有 "+ numberOfDaysInAYear(year)+"天");
}
}
public static int numberOfDaysInAYear(int year) {
int days=0;
if(isLeapYear( year))
return days=366;
else
return days=365;
}
public static boolean isLeapYear(int year) {
return year%400==0 || (year%4==0 && year%100!=0);
}
}
(6.10~6.11节)
*6.17(显示0和1构成的矩阵)
import java.util.Scanner;
public class S17 {
public static void main(String[] args) {
Scanner input =new Scanner(System.in);
System.out.print("请输入 n :");
int n=input.nextInt();
printMatrix(n);
}
private static void printMatrix(int n) {
for(int i=1; i<=n ; i++) {
for(int j=1; j<=n; j++) {
System.out.printf("%2d", (int) (Math.random()*2));
}
System.out.println();
}
}
}
**6.18(检测密码)
import java.util.Scanner;
public class S18 {
public static void main(String[] args) {
Scanner input =new Scanner(System.in);
System.out.print("请输入密码 :");
String s=input.nextLine();
input.close();
isPassword(s);
}
private static void isPassword(String s) {
char[] ch=new char[s.length()];
int count=0;
int count1=0;
if(s.length()>=8) {
//先将字符串分配为一个个字符
for(int i=0; i<s.length(); i++) {
ch[i]=s.charAt(i);
}
for(int i=0; i<s.length(); i++) {
if(Character.isLetterOrDigit(ch[i])) {
count++;//检测每个字符都是数字和字符了吗,若计数器的值和字符串长度一样,则说明这个字符串里都是字符和数字
}
}
//若计数器的值和字符串长度一样,则说明这个字符串里都是字符和数字; 反之,说明这个字符串里并不全都是数字和字符串,有些字符是其他的
if(count == s.length()) {
for(int i=0; i<s.length(); i++) {
if(Character.isDigit(ch[i]))
count1++;
}
if(count1>=2) {
System.out.println("Valid Password!");
}
else {
System.out.println("Invalid Password.");
}
}
else {
System.out.println("Invalid Password.");
}
}
else if(s.length()<8){
System.out.println("Invalid Password.");
}
}
}
*6.19(MyTriangle 类)
package p6;
public class MyTriangle {
public static boolean isValid(double side1, double side2, double side3) {
return (side1+side2>side3 && side1+side3>side2 && side2+side3>side1);
}
public static double area(double side1, double side2, double side3) {
double s=(side1+side2+side3)/2;
double area=Math.pow( s*(s-side1)*(s-side2)*(s-side3) ,0.5);
return area;
}
}
package p6;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner input =new Scanner(System.in);
System.out.print("请输入第1条边 :");
double side1=input.nextDouble();
System.out.print("请输入第2条边 :");
double side2=input.nextDouble();
System.out.print("请输入第3条边 :");
double side3=input.nextDouble();
if( MyTriangle.isValid(side1, side2, side3)) {
System.out.println(MyTriangle.area(side1, side2, side3));
}
else {
System.out.println("Invalid input.");
//System.exit(0);
}
}
}
*6.20(计算一个字符串中字母的个数)
import java.util.Scanner;
public class S20 {
public static void main(String[] args) {
Scanner input =new Scanner(System.in);
System.out.print("请输入一个字符串:");
String s=input.nextLine();
input.close();
System.out.println("字符串中的字母个数为: " + countLetters(s));
}
public static int countLetters(String s) {
int count=0;
char[] ch=new char[s.length()];
for(int i=0; i<s.length(); i++) {
ch[i]=s.charAt(i);
if(Character.isLetter(ch[i]))
count++;
}
return count;
}
}
*6.21(电话按键盘)
import java.util.Scanner;
public class S21 {
public static void main(String[] args) {
Scanner input =new Scanner(System.in);
System.out.print("Enter a string: ");
String s=input.nextLine();
input.close();
char[] ch1=new char[s.length()];
for(int i=0; i<s.length(); i++) {
ch1[i]=s.charAt(i);
if(Character.isLetter(ch1[i])) {
System.out.print(getNumber(ch1[i]));
}
else {
System.out.print(ch1[i]);
}
}
}
public static int getNumber(char uppercaseLetter) {
char ch=Character.toLowerCase(uppercaseLetter);
int number=0;
switch(ch) {
case 'a':
case 'b':
case 'c': number=2;
break;
case 'd':
case 'e':
case 'f': number=3;
break;
case 'g':
case 'h':
case 'i': number=4;
break;
case 'j':
case 'k':
case 'l': number=5;
break;
case 'm':
case 'n':
case 'o': number=6;
break;
case 'p':
case 'q':
case 'r':
case 's': number=7;
break;
case 't':
case 'u':
case 'v': number=8;
break;
case 'w':
case 'x':
case 'y':
case 'z': number=9;
break;
}
return number;
}
}
**6.22(数学:平方根的近似求法)
import java.util.Scanner;
public class S22 {
public static void main(String[] args) {
Scanner input =new Scanner(System.in);
System.out.print("请输入一个数字:");
long n=input.nextLong();
input.close();
System.out.println("该数的近似平方根为: " + sqrt(n));
}
public static double sqrt(long n) {
double lastGuess=2;//最初的猜测值可以是任意一个正值(例如,1)
double nextGuess;
do{
nextGuess=(lastGuess + n / lastGuess) / 2 ;
lastGuess=nextGuess;
}while( nextGuess-lastGuess >= 0.0001 ) ;
return nextGuess;
}
}
*6.23(指定字符出现次数)
import java.util.Scanner;
public class S23 {
public static void main(String[] args) {
Scanner input =new Scanner(System.in);
System.out.print("请输入一个字符串 :");
String str=input.nextLine();
System.out.print("请输入一个字符:");
String s1=input.nextLine();
input.close();
char a=s1.charAt(0);
System.out.println("字符'"+a+"'在字符串中出现次数为: "+count(str,a));
}
public static int count(String str, char a) {
int count=0;
char[] ch1=new char[str.length()];
for(int i=0; i<str.length(); i++) {
ch1[i]=str.charAt(i);
if(ch1[i] == a) {
count++;
}
}
return count;
}
}
(6.10~6.12节)
**6.24(显示当前日期和时间)
略,不会
**6.25(将毫秒数转换成小时数、分钟数和秒数)
import java.util.Scanner;
public class S25 {
public static void main(String[] args) {
Scanner input =new Scanner(System.in);
System.out.print("请输入毫秒数 :");
long millis=input.nextLong();
input.close();
System.out.println(convertMillis(millis));
}
public static String convertMillis(long millis) {
long totalSeconds=millis/1000;
long seconds=totalSeconds%60;//当前秒数
long totalMinutes=totalSeconds/60;
long minutes=totalMinutes%60;//当前分钟
long totalHours=totalMinutes/60;
long hours=totalHours%24;//当前小时
return hours+":"+minutes+":"+seconds;
}
}