課程名稱:線性代數 CS233 B
授課教師:簡廷因
發放時間:2020-09-14
截止時間:2020-09-28 23:59:59


Get a integer N from parameter, and print the result of 1+2+…+N to STDOUT

0 < N < 65535

Sample input : 10
Sample output : 55
Sample command : ./tinin.exe 10


題目說明

給一個整數 N,求 1 + 2 + … + N 的值並 cout 出來。

解題思路

先判斷 argc 是否大於 1,表示至少有一個參數傳入,接著判斷此參數是否 大於 0 且小於 65535。若是的話先使用 atoll() 將字串轉為數字 ( 轉為 long long 避免數值超越 int 的邊界 ),最後使用梯形面積公式算出答案即可。

argc 表示傳入參數的數量,char* argv[] 表示傳入的參數。argv[0] 為程式的名稱。

參考解法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>

using namespace std;

// fast IO
static auto __ = []()
{
std::ios_base::sync_with_stdio(false);
std::cin.tie(nullptr);
std::cout.tie(nullptr);
return 0;
}();

int main(int argc, char* argv[])
{
cout << ((argc > 1 && atoi(argv[1]) > 0 && atoi(argv[1]) < 65535) ? (1 + atoll(argv[1])) * atoll(argv[1]) / 2 : 0);
}

備註

此作業為測試用,不算分。