andy6804tw
7/19/2016 - 3:09 PM

http://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?a=3545 這題是系上鍾主任所出的題目使用遞迴做運算,我當初用c顯示記憶體引用錯誤不知道是什麼原因後還用java就AC了

http://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?a=3545

這題是系上鍾主任所出的題目使用遞迴做運算,我當初用c顯示記憶體引用錯誤不知道是什麼原因後還用java就AC了

import java.util.*;

public class Main {

	public static void main(String[] args) {
		Scanner scn = new Scanner(System.in);
		int n = scn.nextInt();
		while (n-- != 0) {
			String s[] = scn.next().split(",");
			double t = Double.parseDouble(s[0]), time = Integer.parseInt(s[1]);
			System.out.printf("%.4f\n", call(time, t));
		}
	}

	public static double call(double t1, double t0) {
		if (t1 == 0)
			return t0;
		else
			return call(t1 - 1, t0) + t1 * 2.71828;
	}
	
	/* 
    題目:[C_RU07-易] 電路板溫度升高問題.java
    作者:1010
    時間:西元 2016 年 7 月 */
}
#include<stdio.h>    
#include<math.h>    
#include <string.h>    
double call(double t1,double t0){    
if(t1==0)return t0;    
else return call(t1-1,t0)+t1*2.71828;    
}    
int main(){    
int n,i;    
double t0,t1;    
scanf("%d",&n);    
for(i=0;i<n;i++){    
int j=0;    
char str[1000];    
scanf("%s",str);    
char *test=strtok(str,",");    
while (test != NULL) {    
if(j==0)t0=atof(test);    
else t1=atof(test);    
test = strtok(NULL, ",");    
j++;    
}    
printf("%.4lf\n",call(t1,t0));} 
/* 
    題目:[C_RU07-易] 電路板溫度升高問題.c
    作者:1010
    時間:西元 2016 年 7 月 */
}