題目連結
題意:
題目定義了2個函數:
f(x)
計算正整數 n 的各個位數總和
g(x)
遞迴執行 f(x)
直到 f(x)的結果為個位數
簡言之
先計算給定 n 的各位數之和
若結果為二位數以上 (>10),則重複動作
解法:
按照思維
先寫出 f(x) 的函數
也就是可以執行一次計算各位數之和
再接著主程式裡寫 while loop 遞迴跑
等結果 < 10 才會離開迴圈
程式(Java):
題意:
題目定義了2個函數:
f(x)
計算正整數 n 的各個位數總和
g(x)
遞迴執行 f(x)
直到 f(x)的結果為個位數
簡言之
先計算給定 n 的各位數之和
若結果為二位數以上 (>10),則重複動作
解法:
按照思維
先寫出 f(x) 的函數
也就是可以執行一次計算各位數之和
再接著主程式裡寫 while loop 遞迴跑
等結果 < 10 才會離開迴圈
程式(Java):
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.util.*; | |
public class Main { | |
public static void main(String args[]) { | |
Scanner sc = new Scanner(System.in); | |
while (sc.hasNext()){ | |
double L = sc.nextDouble(); | |
double W = sc.nextDouble(); | |
double a = 12; | |
double b = -4*(L + W); | |
double c = L * W; | |
double max = (-b - Math.sqrt(b*b - 4*a*c))/(2*a); | |
double min = (W < L ? W : L)/2; | |
System.out.printf("%.3f 0.000 %.3f\n", max, min); | |
} | |
} | |
} |
留言
張貼留言