2013年1月4日 星期五

[ZJ] d881. 作業苦多


內容 :
學校作業何其多~~老二為此苦惱了許久,現在又有一份數學作業,他想節省時間,所以想找一個程式來解決此問題,你能幫嗎?詳細題目如下:
計算一級數
每項的差形成一個等差數列
每一題給定一等差數列的公差
此等數列有50項,第一項為1
輸出此數列和(1+到50項)
例如輸入為1(此為各項差形成的等差級數的公差) 
答案要輸出1+2+4+7+11+......(到50項) 
若輸入為2
答案要輸出1+2+5+10+17+26+37...... (到五十項)
輸入說明 :
每次輸入一個測資d,代表公差(d<=100)
輸出說明 :
輸出級數和(1+到50項)
範例輸入 :
1
範例輸出 :
20875
提示 :
出處 :
CSDC (管理:leepupu)

作法 : 數字很小,懶得導公式,直接硬爆

/**********************************************************************************/
/*  Problem: d881 "作業苦多" from CSDC                                        */
/*  Language: C                                                                   */
/*  Result: AC (2ms, 256KB) on ZeroJudge                                          */
/*  Author: morris1028 at 2011-06-01 20:12:36                                     */
/**********************************************************************************/


#include<stdio.h>
main() {
    int d;
    while(scanf("%d", &d) == 1) {
        int sum = 0, a, t = 1;
        for(a = 0; a < 50; a++)
            sum += t, t = 1+(2+a*d)*(a+1)/2;
        printf("%d\n", sum);
    }
    return 0;
}

沒有留言:

張貼留言