更新時間:2020-08-31 16:02:50 來源:動力節(jié)點 瀏覽2646次
題目:求0,1,2,3,4,5,6,7所能組成的8位奇數(shù)個數(shù)。
/**
?*?【程序41】
?*?題目:求0,1,2,3,4,5,6,7所能組成的8位奇數(shù)個數(shù)。
?*/
public?class?Subject41?{
????public?static?void?main(String[]?args)?{
????????int[]?arr?=?new?int[]{0,1,2,3,4,5,6,7};
????????compose(arr);
????}
????/**
?????*?獲?。?—7所能組成的奇數(shù)個數(shù)
?????*/
????private?static?void?compose(int[]?arr)?{
????????/**奇數(shù)特點,該數(shù)不能被2整數(shù)。故各位數(shù)是1,3,5,7,9**/
????????int?oddCount?=?0;
????????for?(int?i?=?0;?i?<?arr.length;?i++)?{
????????????if(!isParity(arr[i])){
????????????????oddCount++;
????????????}
????????}
????????/***************各位已經(jīng)確定,剩下的數(shù)可以組成整數(shù)的個數(shù)*******************/
????????int?num?=?factorial(arr.length-1);
????????/****************輸出結(jié)果*********************/
????????System.out.println("以下數(shù)字:");
????????printArray(arr);
????????System.out.println("可產(chǎn)生的奇數(shù)個數(shù):"+oddCount*num);
????}
????/**
?????*?判斷num是奇數(shù)還是偶數(shù)
?????*?@param?num
?????*?@return
?????*/
????private?static?boolean?isParity(int?num)?{
????????if(num%2?==?1){
????????????return?false;
????????}else?{
????????????return?true;
????????}
????}
????/**
?????*?計算num的階乘!
?????*?@param?num
?????*?@return
?????*/
????public?static?int?factorial(int?num){
????????if(num?==?1){
????????????return?1;
????????}else{
????????????return?num*factorial(num-1);
????????}
????}
????/**
?????*?打印數(shù)組
?????*?@param?arr
?????*/
????private?static?void?printArray(int[]?arr)?{
????????for?(int?i?=?0;?i?<?arr.length?;?i++)?{
????????????System.out.print(arr[i]+"?");
????????}
????}
}
運行結(jié)果:

題目:輸入一個偶數(shù),判斷該偶數(shù)等于哪兩個素數(shù)之和。
import?java.util.ArrayList;
import?java.util.List;
import?java.util.Scanner;
/**
?*?【程序42】
?*?題目:輸入一個偶數(shù),判斷該偶數(shù)等于哪兩個素數(shù)之和。
?*/
public?class?Subject42?{
????public?static?void?main(String[]?args)?{
????????System.out.println("請輸入大于等于2的偶數(shù):");
????????Scanner?scanner?=?new?Scanner(System.in);
????????int?num?=?scanner.nextInt();
????????getTwoPrimeNum(num);
????}
????/**
?????*?獲取兩個素數(shù)
?????*?@param?num
?????*/
????private?static?void?getTwoPrimeNum(int?num)?{
????????List?primeNumberList?=?getPrimeNumber(2,num);
????????for?(int?i?=?0;?i?<?primeNumberList.size();?i++)?{
????????????for?(int?j?=?i;?j?<?primeNumberList.size();?j++)?{
????????????????if(num?==?primeNumberList.get(i)?+?primeNumberList.get(j)){
????????????????????System.out.println("該偶數(shù)為素數(shù)("+primeNumberList.get(i)+")和素數(shù)("+primeNumberList.get(j)+")的和");
????????????????}
????????????}
????????}
????}
????/**
?????*?判斷a和b之間有多少個素數(shù)
?????*?@param?a
?????*?@param?b
?????*/
????public?static?List?getPrimeNumber(int?a,?int?b){
????????List?primeNumberList?=?new?ArrayList<>();
????????if(a?>=?b){
????????????System.out.println("a不能大于等于b!");
????????}
????????for(int?i=a;i<=b;i++){
????????????if(isPrimeNumber(i)){
????????????????primeNumberList.add(i);
????????????}
????????}
????????return?primeNumberList;
????}
????/**
?????*?判斷num是否是一個素數(shù)
?????*?@param?i
?????*?@return
?????*/
????private?static?boolean?isPrimeNumber(int?i)?{
????????boolean?flag?=?true;
????????for(int?j=2;j?<=?i/2;j++){
????????????if(i%j?==?0){
????????????????flag?=?false;
????????????????break;
????????????}
????????}
????????return?flag;
????}
}
運行結(jié)果:

以上就是動力節(jié)點java培訓(xùn)機構(gòu)的小編針對“Java題庫練習(xí)題,看看你有哪些不會的”的內(nèi)容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。