a216
輸入說明 :
輸入以 EOF 結束。每一筆測試資料有一個數字 n,其中 n > 0。 此外,50% 的測資 n <= 500;80% 的測資,n <= 3000;全部的測資 n <= 30000。
輸出說明 :
輸出 f(n) 與 g(n)。
這題可以用遞迴寫,也可以把前一次函數的結果存在陣列裡面
f(n)這個函數,有一個公式,f(n)=n*(n+1)/2
#include<stdio.h>
long long int f(int);
long long int g(int);
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
printf("%lld %lld\n",f(n),g(n));
}
}
long long int f(int n)
{
long long int array[30000]={1};
int i;
if(n==1)
return 1;
else
{
return n*(n+1)/2;
}
}
long long int g(int n)
{
long long int array[30000]={1};
int i;
if(n==1)
return 1;
else
{
for(i=1;i<n;i++)
{
array[i]=f(i+1)+array[i-1];
}
return array[i-1];
}
}