第一天蓝桥杯备战
作為一個算法渣渣,入門小白開始了第一天刷題之路,(~ ̄▽ ̄)~
1.
package com.wyc.cxsj;import java.text.DecimalFormat; import java.util.Scanner;/*** 輸入一個華氏溫度,要求輸出攝氏溫度。公式為 c=5(F-32)/9,取位2小數(shù)。* @author chen**/ public class Main {public static void main(String []args) {Scanner scanner = new Scanner(System.in);int F= scanner.nextInt();double c = (double) (5*(F-32)/9);DecimalFormat df = new DecimalFormat(".00");System.out.println(df.format(c));} }說明:DecimalFormat 是 NumberFormat 的一個具體子類,用于格式化十進制數(shù)字。
DecimalFormat 包含一個模式 和一組符號.
0 一個數(shù)字 #:不包括0的數(shù)字
DecimalFormat df = new DecimalFormat(".00"); 保留兩位.
2
package com.wyc.cxsj;import java.text.DecimalFormat; import java.util.ArrayList; import java.util.List; import java.util.Scanner;/***給出一個不多于5位的整數(shù),要求 1、求出它是幾位數(shù) 2、分別輸出每一位數(shù)字* 3、按逆序輸出各位數(shù)字,例如原數(shù)為321,應輸出123* @author chen**/ public class Main {public static void main(String []args) {int count = 0;List shuzi = new ArrayList();Scanner scanner = new Scanner(System.in);int c = scanner.nextInt();if(c<=10000&&c>=-10000) {for(int i = 10;c !=0 ;c = c/i) {shuzi.add(c%i);}System.out.println(shuzi.size());for(int i = shuzi.size()-1;i>=0;i--) {System.out.println(shuzi.get(i));}for(Object a:shuzi) {System.out.println(a);}}} }過程比較繁瑣,來自學渣的嘆息…
下面是標準解法:
運用字符串可以輕易解決問題,因為題目中沒有要求類型.
3.
/**輸入兩個正整數(shù)m和n,求其最大公約數(shù)和最小公倍數(shù)。* @author chen**/ public class Main { //遞歸思想public static int gongyue(int a,int b) {if(a<b) {int t = a;a = b;b = t;}if(a%b != 0) {return gongyue(b,a%b); //注意是用b/(a%b)}return b;}public static int gongbei(int a,int b) {//運用公式法求 a*b/[a,b] int c = gongyue( a, b) ;int gongbei = a*b/c;return gongbei;}public static void main(String []args) {Scanner s=new Scanner(System.in);int a = s.nextInt();int b = s.nextInt();System.out.println(gongyue(a,b));System.out.println(gongbei(a,b));} }4
package com.wyc.cxsj import java.util.Scanner; /*** 求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一個數(shù)字(n不超過20)。* @param args*/ public class Main {//一定要記得使用long類型 // 基本類型:int 二進制位數(shù):32 // 包裝類:java.lang.Integer // 最小值:Integer.MIN_VALUE= -2147483648 (-2的31次方) 接近2*10的9次方 // 最大值:Integer.MAX_VALUE= 2147483647 (2的31次方-1) // 3、 // 基本類型:long 二進制位數(shù):64 // 包裝類:java.lang.Long // 最小值:Long.MIN_VALUE=-9223372036854775808 (-2的63次方) 9*10的18次方 // 最大值:Long.MAX_VALUE=9223372036854775807 (2的63次方-1 public static long jiecheng(int n) {if(n == 1) {return 1;}return n*jiecheng(n-1);}public static void main(String [] args) {Scanner in = new Scanner(System.in);int n = in.nextInt();long sum = 0;if(n<=20) {for(int i = n;i>0;i--) {long c = jiecheng(i);sum = sum +c;}System.out.println(sum);}} }有坑: 這種階乘都會很大,用int類型不行,要用long
5
import java.util.ArrayList; import java.util.List; import java.util.Scanner; /*** 一個數(shù)如果恰好等于不包含它本身所有因子之和,這個數(shù)就稱為"完數(shù)"。* 例如,6的因子為1、2、3,而6=1+2+3,因此6是"完數(shù)"。 編程序找出N之內(nèi)的所有完數(shù),* 并按下面格式輸出其因子* 6 its factors are 1 2 3 28 its factors are 1 2 4 7 14 496 its factors are 1 2 4 8 16 31 62 124 248 * @param args*/ public class Main {List list = new ArrayList();public boolean wanshu(int n) {int sum = 0;//請注意這里是不包含他本身 所有因子之和for(int i = 1;i<n;i++) {if(n%i==0) {sum = sum+i;list.add(i);}} if(sum ==n ) {return true;}return false;}public static void main(String [] args) {Scanner in = new Scanner(System.in);int n = in.nextInt();Main mian = new Main();for(int j= 1;j<=n;j++) {if(mian.wanshu(j)) {System.out.print(j+" its factors are"+" ");for(Object i:mian.list) {System.out.print(i+" ");} System.out.println();}mian.list.clear();}} }這里我使用的是集合類,好像用數(shù)組更好一點,這是用數(shù)組的結果
package com.wyc.cxsj; import java.util.ArrayList; import java.util.List; import java.util.Scanner; /*** 一個數(shù)如果恰好等于不包含它本身所有因子之和,這個數(shù)就稱為"完數(shù)"。* 例如,6的因子為1、2、3,而6=1+2+3,因此6是"完數(shù)"。 編程序找出N之內(nèi)的所有完數(shù),* 并按下面格式輸出其因子* 6 its factors are 1 2 3 28 its factors are 1 2 4 7 14 496 its factors are 1 2 4 8 16 31 62 124 248 * @param args*/ public class Main {public static void main(String [] args) {Scanner in = new Scanner(System.in);int n = in.nextInt();for(int j = 1;j<=n;j++) {int[] a = new int [j];int index = 0;int sum = 0; for(int i = 1;i<j;i++) {if(j%i == 0) {sum = sum+i;a[index] = i;index++;} }if(sum == j ) {System.out.print(j+" its factors are ");for(int i = 0;i<index;i++) {System.out.print(a[i]+" ");}System.out.println();}}} }總結
- 上一篇: 汉字拼音首字母
- 下一篇: python里面的pip是什么意思_为什