日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

nchu-software-oop-2022-1

發(fā)布時間:2024/3/26 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nchu-software-oop-2022-1 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

nchu-software-oop-2022-1

  • 7-1.身體質(zhì)量指數(shù)(BMI)測算
  • 7-2.長度質(zhì)量計量單位換算
  • 7-3 奇數(shù)求和
  • 7-4 房產(chǎn)稅費計算2022
  • 7-5 游戲角色選擇
  • 7-6 學號識別
  • 7-8 巴比倫法求平方根近似值
  • 7-9 二進制數(shù)值提取
  • 7-7 判斷三角形類型

7-1.身體質(zhì)量指數(shù)(BMI)測算

體重是反映和衡量一個人健康狀況的重要標志之一,過胖和過瘦都不利于健康,BMI(身體質(zhì)量指數(shù))計算方法:體重(以千克為單位)除以身高(以米為單位)的平方。中國成人正常的BMI應在18.5-24之間,如果小于18.5為體重不足,如果大于等于24為超重,大于等于28為肥胖。請編寫程序,測算身體狀態(tài)。

輸入格式:
兩個數(shù)值:體重(以千克為單位),身高(以米為單位),數(shù)值間以空格分隔。例如:65.5 1.75。
注意:體重的世界紀錄是727公斤,身高的世界紀錄是2.72米。輸入數(shù)據(jù)上限不得超過紀錄,下限不得小于等于0;

輸出格式:
輸入數(shù)值超出范圍 :輸出“input out of range”。例如:-2 3或者125 5。
BMI小于18.5 :輸出“thin”。
BMI大于等于18.5小于24 :輸出“fit”。
BMI大于等于24小于28 :輸出“overweight”。
BMII大于等于28 :輸出“fat”。

樣例輸入&輸出

input: -2 8

output: input out of range

思路:
輸入輸出題,注意數(shù)據(jù)限制條件即可。

實現(xiàn):

//身體質(zhì)量指數(shù)(BMI)測算 import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);double weight = sc.nextDouble();double height = sc.nextDouble();//checkif (weight>727 || weight<=0){System.out.println("input out of range");return;}if (height>2.72 || height<=0){System.out.println("input out of range");return;}//judgedouble tmp = weight / Math.pow(height,2);if( tmp < 18.5){System.out.println("thin");return;}if( tmp >= 24){if ( tmp >= 28){System.out.println("fat");return;}System.out.println("overweight");return;}System.out.println("fit");} }

7-2.長度質(zhì)量計量單位換算

長度、質(zhì)量的計量有多重不同的計算體系,有標準的國際單位制:千克與米,也有各個國家自己的計量方法如:磅、英寸;1磅等于0.45359237千克,1英寸等于0.0254米,請編寫程序?qū)崿F(xiàn)國際單位制與英制之間的換算。

輸入格式:
兩個浮點數(shù),以空格分隔,第一個是質(zhì)量(以千克為單位)、第二個是長度(以米為單位)。例如:0.45359237 0.0254。

輸出格式:
兩個浮點數(shù),以空格分隔,第一個是質(zhì)量(以磅為單位)、第二個是長度(以英寸為單位)。例如:1.0 1.0。

樣例輸入&輸出

input_1: 0.45359237 0.0254

output_1: 1.0 1.0

思路:
輸入輸出題,注意數(shù)據(jù)范圍,注意數(shù)據(jù)類型要轉(zhuǎn)換為float型

實現(xiàn):

//長度質(zhì)量計量單位換算 import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);double m = sc.nextDouble();double len = sc.nextDouble();System.out.println( (float)(m / 0.45359237) + " " + (float)(len / 0.0254) );} }

7-3 奇數(shù)求和

計算一個數(shù)列中所有奇數(shù)的和。

輸入格式:
十個整數(shù),以空格分隔。例如:1 2 3 4 5 6 7 8 9 0。

輸出格式:
輸入數(shù)列中所有奇數(shù)之和。例如:25。

樣例輸入&輸出

input_1: 1 2 3 4 5 6 7 8 9 0

output_1: 25

思路:
循環(huán)輸入十次,利用tmp接收輸入,為奇數(shù)時加入累加器ans;
判斷一個數(shù)字tmp是否為奇數(shù),可以利用 (tmp&1) == 1 計算;
也可以利用 (tmp%2)== 1 計算;
前者相對來說快那么一丟丟;

實現(xiàn):

//奇數(shù)求和 import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int tmp, ans=0;for (int i=1;i<=10;i++){tmp = sc.nextInt();if( (tmp & 1) == 1){ans += tmp;}}System.out.println(ans);}}

7-4 房產(chǎn)稅費計算2022

房屋交易在日常生活中非常常見的事情,房屋交易時要額外支付各種稅費,按2022年房產(chǎn)交易新政策的規(guī)定買房人應繳納稅費包括:
1、契稅:首次購房評估額90平(含)內(nèi)1%、90平-144平(含)內(nèi)1.5%,超過144平或非首 次3%,買方繳納。
2、印花稅:房款的0.05%。
3、交易費:3元/平方米。
4、測繪費:1.36元/平方米。
5、權屬登記費及取證費:一般情況是在200元內(nèi)。

輸入格式:
四個數(shù)據(jù),以空格分隔:
1、第幾次購房(整數(shù))
2、房款(整數(shù)/單位萬元)
3、評估價(整數(shù)/單位萬元)
4、房屋面積(浮點數(shù)/單位平方米)。
例如:1 100 100 90。

輸出格式:
契稅、印花稅、交易費、測繪費(以元為單位),以空格分隔。例如:10000.0 500.0 270.0 122.4

樣例輸入&輸出

input_1: 1 100 100 90

output_1: 10000.0 500.0 270.0 122.4

思路:
閱讀理解題(大概?
讀懂題意就行

實現(xiàn):

//房產(chǎn)稅費計算2022 import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int cnt = sc.nextInt();int value = sc.nextInt();int g = sc.nextInt();float s = sc.nextFloat();double a=0, b=0 ,c=0 ,d=0;if(cnt == 1){if(s <= 90) a = g * 0.01;else if(s <= 144) a = g * 0.015;else a = g * 0.03;}else {a = g * 0.03;}a *= 10000;b = value * 0.0005 * 10000;c = s * 3;d = s * 1.36;//注意轉(zhuǎn)換為float類型即可System.out.println((float)a+" "+(float)b+" "+(float)c+" "+(float)d);}}

7-5 游戲角色選擇

一款網(wǎng)游中包括4個種族:人類、精靈、獸人、暗精靈,每個種族包含三種角色:戰(zhàn)士、法師、射手。玩家新建人物時需要選擇種族和角色。請編寫角色選擇程序。

輸入格式:
兩個整數(shù):游戲種族、角色的選項,以空格分隔。例如:1 2。
種族選項設定為:1、人類 2、精靈 3、獸人 4、暗精靈
角色選項設定為:1、戰(zhàn)士 2、法師 3、射手

輸出格式:
所選擇的種族、角色的名稱,以空格分隔。例如:人類 法師
若輸入數(shù)值超出選項范圍,輸出“Wrong Format”

樣例輸入&輸出

input_1: 1 2

output_1: 人類 法師

思路:
設置兩個數(shù)組預存要選擇的種族和職業(yè),之后取出即可

實現(xiàn):

//游戲角色選擇 import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String[] arr_1 = new String[] {"人類","精靈","獸人","暗精靈"};String[] arr_2 = new String[] {"戰(zhàn)士","法師","射手"};int a, b;a = sc.nextInt();b = sc.nextInt();//checkif( (a<1) || (a>4) || (b<1) || (b>3) ){System.out.println("Wrong Format");return;}//注意數(shù)組下標0開始System.out.println(arr_1[a-1] + " " + arr_2[b-1]);}}

7-6 學號識別

學校的學號由8位數(shù)字組成,前兩位是入學年份(省略了20);第3、4位是學院編號,01代表材料學院,02代表機械學院,03代表外語學院,20代表軟件學院;第5、6位是學院內(nèi)部班級編號,最后兩位是班級內(nèi)部學號。如:18011103,入學年份是2018年,材料學院,11班,03號

輸入格式:
8位數(shù)字組成的學號。例如:18011103
注意:輸入學號不是8位或者學院編號不是01、02、03、20其中之一,屬于非法輸入

輸出格式:
學號每一項的完整說明。例如:
入學年份:2018年
學院:材料學院
班級:11
學號:03

注意:如非法輸入,輸出“Wrong Format"

樣例輸入&輸出

input_1: 18011103

output_1: 入學年份:2018年
學院:材料學院
班級:11
學號:03

思路:
設置一個數(shù)組預存學院,因為學院編號只有01, 02,03, 20,可以觀察出編號末尾不相同,因此可以以此作為數(shù)組索引;
判斷學號是否合法可采用Strng的內(nèi)置API實現(xiàn),關于這些移步: java String類(超詳細!)
輸出采用printf格式化輸出

實現(xiàn):

//學號識別 import java.util.*;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String str = sc.nextLine();if(!check(str)){System.out.println("Wrong Format");return ;}String[] tmp = new String[]{"軟件","材料","機械","外語"};System.out.printf("入學年份:20%s年\n" +"學院:%s學院\n" +"班級:%s\n" +"學號:%s",str.substring(0,2),tmp[str.charAt(3)-'0'],str.substring(4,6),str.substring(6,8));}public static boolean check(String str){if(str.length() != 8) return false;if( str.substring(2,4).compareTo("01") == 0 ) return true;if( str.substring(2,4).compareTo("02") == 0 ) return true;if( str.substring(2,4).compareTo("03") == 0 ) return true;if( str.substring(2,4).compareTo("20") == 0 ) return true;return false;} }

7-8 巴比倫法求平方根近似值

巴比倫法求n的近似值可以用以下公式:
nextGuess = (lastGuess+n/lastGuess)/2
程序初始運行時lastGuess可賦予一個最初的猜測值。當由公式求得的nextGuess和lastGuess相差較大時,把nextGuess的值賦給lastGuess,繼續(xù)以上過程,直至nextGuess和lastGuess幾乎相同,此時lastGuess或者nextGuess就是平方根的近似值。
本題要求:nextGuess和lastGuess的差值小于0.00001時認為兩者幾乎相同

輸入格式:
1、兩個浮點數(shù),以空格分隔,第一個是n,第二個是lastGuess最初的猜測值。例如:2 1。
2、若輸入的兩個數(shù)中包含負數(shù)或者lastGuess初始輸入為0,認定為非法輸入

輸出格式:
1、輸出n的平方根近似值:lastGuess。例如:1.4142157
2、非法輸入時輸出:“Wrong Format”

樣例輸入&輸出

input_1: 2 1

output_1: 2 -1

思路:
輸入輸出題
坑點:必須采用foat類型,不然會錯,因為double類型精度更高,PTA測試點為文本對比,之后一模一樣才正確;
連古巴比倫都知道兩個數(shù)相差小時可以看成近似相等,PTA為啥不行呢(惱

實現(xiàn):

//巴比倫法求平方根近似值 import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);float n, lastGuess,nextGuess;n = sc.nextFloat();lastGuess = sc.nextFloat();if(lastGuess<=0 ||n<0){System.out.println("Wrong Format");return;}while(true){nextGuess = (float) ((lastGuess + n/lastGuess) / 2.0);if(Math.abs(nextGuess-lastGuess) >= 0.00001){lastGuess = nextGuess;}else break;}System.out.println(lastGuess+" ");}}

7-9 二進制數(shù)值提取

在一個字符串中提取出其中的二進制數(shù)值序列,。

輸入格式:
一個由0、1構成的序列,以-1為結束符,非0、1字符視為正常輸入,但忽略不計,未包含結束符的序列視為非法輸入。例如:abc00aj014421-1

輸出格式:
將輸入的序列去掉非0、1字符以及結尾符的數(shù)據(jù)內(nèi)容,
注:結束符-1之后的0\1字符忽略不計。
例如:00011。

樣例輸入&輸出

input_1: abc00aj014421-1

output_1: 00011

思路:
如果是-1只會出現(xiàn)在末尾的話,那么這題就簡單了,直接判斷到String.length()-2即可;
但是這題-1會出現(xiàn)在中間或者不出現(xiàn),那么就是典型子串在主串的第一次出現(xiàn)位置,可以雙重循環(huán)暴力找,也可以利用 kmp 尋找,再或者利用Stirng內(nèi)置API自己構造一個這樣的函數(shù)
kmp請移步:從頭到尾徹底理解KMP(2014年8月22日版)

實現(xiàn):

//二進制數(shù)值提取 import java.util.*;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String tmp;char[] st = new char[1000];int top = 0;tmp = sc.nextLine();int pos = findStr(tmp,"-1");if(pos == -1){System.out.println("Wrong Format");return;}for(int i=0;i<pos;i++){if (tmp.charAt(i)=='0' || tmp.charAt(i)=='1'){st[top++] = tmp.charAt(i);}}System.out.println(st);}//子串位置public static int findStr(String s1, String s2){int L = s2.length();int n = s1.length();for(int start = 0;start<n-L+1;start++){if(s1.substring(start,start+L).equals(s2)){return start;}}return -1;} }

7-7 判斷三角形類型

輸入三角形三條邊,判斷該三角形為什么類型的三角形。

輸入格式:
在一行中輸入三角形的三條邊的值(實型數(shù)),可以用一個或多個空格或回車分隔,其中三條邊的取值范圍均為[1,200]。

輸出格式:
(1)如果輸入數(shù)據(jù)非法,則輸出“Wrong Format”;
(2)如果輸入數(shù)據(jù)合法,但三條邊不能構成三角形,則輸出“Not a triangle”;
(3)如果輸入數(shù)據(jù)合法且能夠成等邊三角形,則輸出“Equilateral triangle”;
(3)如果輸入數(shù)據(jù)合法且能夠成等腰直角三角形,則輸出“Isosceles right-angled triangle”;
(5)如果輸入數(shù)據(jù)合法且能夠成等腰三角形,則輸出“Isosceles triangle”;
(6)如果輸入數(shù)據(jù)合法且能夠成直角三角形,則輸出“Right-angled triangle”;
(7)如果輸入數(shù)據(jù)合法且能夠成一般三角形,則輸出“General triangle”。
例如:00011。

樣例輸入&輸出

input_1: 50 50 50.0

output_1: Equilateral triangle

思路:
對三個邊按大小升序設置為a < b < c,非法數(shù)據(jù)則一定有(a+b)<= c;
等邊三角形有a = b = c ;
等腰三角形有a = b || b = c;
直角三角形有: pow(a,2) + pow(b,2) = pow(c,2);
注意點:
在計算機中,對于浮點數(shù)的表示總是不精確的,當判斷兩個數(shù)a,b是否相等時,應該判斷abs(a-b)是否小于一個臨界值

實現(xiàn):

//判斷三角形類型 import java.util.*;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);double[] arr = new double[3];boolean flag = false;//輸入數(shù)據(jù)并升序處理for(int i=0;i<3;i++){arr[i] = sc.nextDouble();if (arr[i]<1 || arr[i]> 200) flag = true;}Arrays.sort(arr);//flag檢測數(shù)據(jù)是否在合法范圍內(nèi)if (flag){System.out.println("Wrong Format");return;}//無法構成三角形if(arr[0] + arr[1] <= arr[2]){System.out.println("Not a triangle");return;}//等邊三角形if(arr[0]==arr[1]&&arr[1]==arr[2]){System.out.println("Equilateral triangle");return;}//right判斷是否為直角三角形,isosceles判斷是否為等腰三角形boolean right = false, isosceles = false;//請看注意點if(Math.abs( Math.pow(arr[0],2) + Math.pow(arr[1],2) - Math.pow(arr[2],2)) <0.0000001 ) right = true;if(arr[0]==arr[1] || arr[1]==arr[2]) isosceles = true;//等腰直角三角形if(right && isosceles){System.out.println("Isosceles right-angled triangle");return;}//直角三角形if (right){System.out.println("Right-angled triangle");return;}//等邊三角形if (isosceles){System.out.println("Isosceles triangle");return;}//一般路過普通三角形System.out.println("General triangle");}}

總結

以上是生活随笔為你收集整理的nchu-software-oop-2022-1的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。