题库练习7(最小公倍数、求立方根、字符串逆序、记负均正、字符串分割)
生活随笔
收集整理的這篇文章主要介紹了
题库练习7(最小公倍数、求立方根、字符串逆序、记负均正、字符串分割)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1. 求最小公倍數(shù)
import java.util.*;public class Main{public static void main(String[] args){Scanner sc=new Scanner(System.in);int a=sc.nextInt();int b=sc.nextInt();System.out.println(getMin(a,b));}public static int getMin(int a,int b){int max=a>b?a:b;int min=max==a?b:a;while(max%min!=0){int temp=max%min;max=min;min=temp;}return a*b/min;} }2. 求立方根
計算一個數(shù)字的立方根,不使用庫函數(shù)
詳細(xì)描述:
- 接口說明
- 原型:
- public?static?double?getCubeRoot(double?input)
- 輸入:double?待求解參數(shù)
- 返回值:double??輸入?yún)?shù)的立方根,保留一位小數(shù)
2.1 分析
Java中求立方根需要了解牛頓迭代法。
牛頓迭代法。設(shè), 求f(x)=0時的解x,即為y的立方根。
根據(jù)牛頓迭代思想,即。
import java.util.*; import java.text.DecimalFormat;public class Main{public static void main(String[] args){Scanner sc=new Scanner(System.in);double d=sc.nextDouble();DecimalFormat df = new DecimalFormat(".0");System.out.println(df.format(getCubeRoot(d)));}public static double getCubeRoot(double input){double a=input;double b=(2*a+input/a/a)/3;while(Math.abs(b-a)>0.000001){a=b;b=(2*a+input/a/a)/3;}return b;} }注:
1. 輸出格式的設(shè)置(保留兩位小數(shù))
public class Test {public static void main(String[] args) {double d = 756.2345566;//方法一:最簡便的方法,調(diào)用DecimalFormat類DecimalFormat df = new DecimalFormat(".00");System.out.println(df.format(d));//方法二:直接通過String類的format函數(shù)實現(xiàn)System.out.println(String.format("%.2f", d));//方法三:通過BigDecimal類實現(xiàn)BigDecimal bg = new BigDecimal(d);double d3 = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();System.out.println(d3);//方法四:通過NumberFormat類實現(xiàn)NumberFormat nf = NumberFormat.getNumberInstance();nf.setMaximumFractionDigits(2);System.out.println(nf.format(d));} }3. 字符串逆序
將一個字符串str的內(nèi)容顛倒過來,并輸出。str的長度不超過100個字符。?如:輸入“I?am?a?student”,輸出“tneduts?a?ma?I”。
import java.util.*;public class Main{public static void main(String[] args){Scanner sc=new Scanner(System.in);String str=sc.nextLine();System.out.println(reverse(str));}public static String reverse(String str){Stack<Character> stack=new Stack<>();char[] chs=str.toCharArray();for(int i=0;i<chs.length;i++)stack.push(chs[i]);String result="";while(!stack.isEmpty())result+=stack.pop();return result;} }4. 記負(fù)均正
從輸入任意個整型數(shù),統(tǒng)計其中的負(fù)數(shù)個數(shù)并求所有非負(fù)數(shù)的平均值
import java.util.*; import java.text.DecimalFormat;public class Main{public static void main(String[] args){Scanner sc=new Scanner(System.in);ArrayList<Integer> list=new ArrayList<>();while(sc.hasNext()){list.add(sc.nextInt());}getResult(list);}public static void getResult(ArrayList<Integer> list){if(list==null){System.out.println(0);System.out.println(0);return;}int count=0;double sum=0.0;for(int i=0;i<list.size();i++){if(list.get(i)<0)count++;elsesum+=list.get(i);}System.out.println(count);if(count==list.size())System.out.println(0.0);else{sum/=(list.size()-count);DecimalFormat df = new DecimalFormat(".0");System.out.println(df.format(sum));}return;} }5. 字符串分割
連續(xù)輸入字符串(輸出次數(shù)為N,字符串長度小于100),請按長度為8拆分每個字符串后輸出到新的字符串?dāng)?shù)組,
長度不是8整數(shù)倍的字符串請在后面補(bǔ)數(shù)字0,空字符串不處理。
輸入描述:首先輸入數(shù)字n,表示要輸入多少個字符串。連續(xù)輸入字符串(輸出次數(shù)為N,字符串長度小于100)
輸出描述:按長度為8拆分每個字符串后輸出到新的字符串?dāng)?shù)組,長度不是8整數(shù)倍的字符串請在后面補(bǔ)數(shù)字0,空字符串不處理。
import java.util.Scanner; import java.util.ArrayList;public class Main{public static void main(String[] args){Scanner sc=new Scanner(System.in);while(sc.hasNext()){int n=sc.nextInt();sc.nextLine();ArrayList<String> list=new ArrayList<>();int i=0;while(i<n){list.add(sc.nextLine());i++;}list=getResult(list);for(int j=0;j<list.size();j++)System.out.println(list.get(j));}}public static ArrayList<String> getResult(ArrayList<String> list){if(list==null)return null;ArrayList<String> res=new ArrayList<>();for(int i=0;i<list.size();i++){String str=list.get(i);while(str.length()>=8){res.add(str.substring(0,8));str=str.substring(8);}if(str.length()<8&&str.length()>0){str+="00000000";res.add(str.substring(0,8));}}return res;} } ??
總結(jié)
以上是生活随笔為你收集整理的题库练习7(最小公倍数、求立方根、字符串逆序、记负均正、字符串分割)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 题库练习5(句子逆序、字符串排序、int
- 下一篇: 基础回顾(正则、循环、和、 int和In