稍微簡化...
-----
Please Input An Positive Integer Here: 5
Ans = (1) + (1 + 2) + (1 + 2 + 3) + (1 + 2 + 3 + 4) + (1 + 2 + 3 + 4 + 5)
= 35
請按任意鍵繼續 . . .
-----
↑執行結果
#include <stdio.h>
#include <stdlib.h>
int
main()
{
int i, j, num, ans = 0;
rekey:
printf("Please Input An Positive Integer Here: ");
scanf("%d", &num);
if (num <= 0) { printf("Error!!\n"); goto rekey; }
printf("\nAns = ");
for (i = 0; i < num; i++)
{
printf("(");
for (j = 0; j < i + 1; j++)
printf("%s%d", (j == 0) ? "" : " + ", j + 1);
printf("%s", (i == (num - 1)) ? ")" : ") + ");
ans += ((1 + (i + 1)) * (i + 1) / 2);
}
printf("\n = %d\n\n", ans);
system("PAUSE");
return 0;
}
※ 引述《gnqwertyuiop (中華炒麵)》之銘言:
: ※ 引述《idea1825 (小貝殼)》之銘言:
: : 我使用的是:Dev C++
: : 程式大概是這樣:(我簡略打粉多,意思到就好= =")
: : int i;
: : int sum;
: : ......................................(我先省略掉)
: : //輸入一整數值:n
: : printf("從1加到n的整數值為%i, sum);
: 前文恕刪
: 我用C語言寫
: 然後就像pelin大大說的
: +跟()要和數字以及總和分開討論
: 我才開始學寫C
: 只會用一些簡單的語法寫Orz...
: 寫的不好別見怪(≧<>≦)
: 因為只用一個迴圈的話
: 好像只能解1+2+3+...+n
: 所以我用巢狀迴圈去寫
: i是表示大迴圈
: k是表示小迴圈
: ex:
: (1)+(1+2)+(1+2+3)=10
: 綠色部分是i在處理
: 黃色部份在k在處理
: 最後的等於多少就放在巢狀迴圈外面
: 另外由於 +號比迴圈少一次
: 所以我就多寫了一個IF去控制
: 下面附上程式碼
: #include <stdio.h>
: #include <stulib.h>
: int main(void)
: {
: int i,j,k,suma=0,sumb=0;
: printf("請輸入一個數字:\n");
: scanf("%d",&j);
: for (i=1;i<j+1;i++)
: {
: printf("(");
: for (k=1;k<i;k++)
: {
: printf("%d",k);
: printf("+");
: }
: suma=suma+i;
: sumb=suma+sumb;
: printf("%d)",i);
: if (i<j)
: {
: printf("+\n");
: }
: }
: printf("=%d",sumb);
: system("pause");
: }
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.57.132.241