Java入門的一些程式碼(一)
阿新 • • 發佈:2021-02-13
一些很簡單的數學題
1.判定一個數是否為素數(使用兩種編寫風格)
2.列印1-100之間的所有素數(使用兩種風格)
3.列印乘法口訣表
1.判定素數
素數是能被1和自身整除的數,所以如果一個數能被除一和自身的數整除的話,那麼它就不是素數。按照這個思路可以去設計一種程式碼。
import java.util.Scanner;
public class JudgePrime {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int prime = sc.nextInt();
for (int i = 2;i <= (int)Math.sqrt(prime);i++){
if (prime % i == 0){
System.out.println(prime+ "不是素數!");
}
}
}
}
第二種編碼思路(上面的程式碼只可以判斷一個數不是素數,如果引入一個Boolean型別可以實現兩種判斷)
import java.util.Scanner;
public class Prime {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int num = scan.nextInt();
boolean isPrime = true;
if (num < 2) {
isPrime = true;
}
if (num >= 2) {
for (int i = 2; i <= Math.sqrt (num); i++) {
if (num % i == 0) {
isPrime = false;
System.out.println(num+"不是素數");
break;
}else{
isPrime = true;
}
}
}
if (isPrime == true)
System.out.println(num + "是素數!");
}
}
2.列印1-100之間的所有素數
這個問題和第一個問題其實是一類問題,只需要在前面的基礎上加一個迴圈即可。
import java.util.Scanner;
public class PrintPrime {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
for (int i = 1;i <= num;i++){
int j;
for ( j = 2;j <= (int)Math.sqrt(i);j++){
if(i % j == 0){
break;
}
}
if(j > (int)Math.sqrt(i)){
System.out.println(i+"是素數!");
}
}
}
}
第二種風格
public class PrintPrime{
public static void main(String[] args) {
int num = 1;
for (num = 1; num <= 100; num++){
boolean isPrime = true;
for (int i = 2; i <= Math.sqrt(num);i++){
if(num % i == 0){
isPrime = false;
break;
}else{
isPrime = true;
}
}
if(isPrime){
System.out.println(num);
}
}
}
}
3.列印乘法口訣表
這道題的思路是,要列印兩個數乘法,那麼要用到兩個迴圈,對於這種雙層巢狀的迴圈用一個圖去理解它。
輸出的時候也要注意,內層迴圈完後也就是一行結束,需要進行換行。
public class PrintMultiPlicationTble {
public static void main(String[] args) {
for (int i = 1;i <= 9;i++){
for (int j = 1;j <= i;j++){
System.out.print(i+"*"+j+"="+i*j+" ");
}
System.out.println();
}
}
}