2016年2月28日 星期日

UVA c002: 10696 - f91

內容 :
McCarthy是一個有名的資訊專家。他定義了一個遞迴的函數叫做 f91 。它輸入一個正整數N並且依據以下的規則傳回一個正整數:
. 如果 N <= 100, 那麼 f91(N) = f91( f91( N+11) )
. 如果 N >= 101, 那麼 f91(N) = N-10
請你寫一個程式來計算 f91
輸入說明 : 
每組測試資料一列。含有1個正整數 N( N <= 1000000)。輸入最多有250000組測試資料。 若 N=0 代表輸入結束。
輸出說明 : 
對每組測試資料輸出一列 f91(N),。輸出格式請參考Sample Output。
範例輸入 : help
500
91
0
範例輸出:
f91(500) = 490
f91(91) = 91
提示 : 
* 中文翻譯:Lucky 貓  
標籤:
出處: 
UVa10696 (管理:)

import java.util.Scanner;

public class UVAc002 {

public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
int n=sc.nextInt();
if(n==0) break;
System.out.println("f91("+n+") = "+f91(n));
}
}
static private int f91(int n){
if(n<=100){
return f91(f91(n+11));
}
else{
return n-10;
}
}

}

2016年2月9日 星期二

c116: 00438 - The Circumference of the Circle

內容 :
要計算一個圓的圓週長似乎是相當簡單的事,如果你知道直徑的話。但是如果你不知道直徑呢?
給你不共線的三個點的座標,你的任務是算出通過這三個點的唯一圓的週長是多少。
輸入說明 : 
每組測試資料一列,含有6個實數x1,y1,x2,y2,x3,y3,分別代表三個點的座標(此三個點不共線)。通過這三個點的唯一圓的直徑不會超過1百萬。
輸出說明 : 
對每一組測試資料,輸出通過這三個點的唯一圓的週長是多少,請輸出到小數點後2位。
圓週率PI的值大約是 3.141592653589793
範例輸入 : help
0.0 -0.5 0.5 0.0 0.0 0.5
0.0 0.0 0.0 1.0 1.0 1.0
5.0 5.0 5.0 7.0 4.0 6.0
0.0 0.0 -1.0 7.0 7.0 7.0
50.0 50.0 50.0 70.0 40.0 60.0
0.0 0.0 10.0 0.0 20.0 1.0
0.0 -500000.0 500000.0 0.0 0.0 500000.0
範例輸出:
3.14
4.44
6.28
31.42
62.83
632.24
3141592.65
提示 : 
* Luck 貓翻譯
標籤:
出處: 
UVa438 (管理:)

import java.util.Scanner;

public class UVAc116 {                        //數學解, 外切圓R = a*b*c/4S, S為三角面積, 用海龍公式S=sqrt(s(s-a)(s-b)(s-c))

public static void main(String[] args) {
final double PI=3.141592653589793;
double x1,y1,x2,y2,x3,y3;
double s,a,b,c,r;
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
x1=sc.nextDouble();
y1=sc.nextDouble();
x2=sc.nextDouble();
y2=sc.nextDouble();
x3=sc.nextDouble();
y3=sc.nextDouble();
a=Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
b=Math.sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3));
c=Math.sqrt((x2-x3)*(x2-x3)+(y2-y3)*(y2-y3));
s=(a+b+c)/2;
r=a*b*c/(4*Math.sqrt(s*(s-a)*(s-b)*(s-c)));
System.out.printf("%.2f\n",2*r*PI);
}

}

}