創作內容

1 GP

高中生程式解題系統 - a216: 數數愛明明(C語言實作)

作者:PM2011│2014-12-18 22:10:10│巴幣:2│人氣:367
程式碼如下

#include <stdio.h>
#include <stdlib.h>

typedef struct
{/* 大數資料類型 */
    int H;  /* 1 H = 1000 000 000 = 10^9 = 1G L*/
    int L;  /* L(Max) = 999 999 999*/
}Big_int;

void Big_int_add(Big_int *a, int b)
{/* 大數與一般數相加用 */
    a->L += b;
    if(a->L >= 1000000000)
    {/* 進位控制 */
        a->H += a->L / 1000000000;/*進位*/
        a->L %= 1000000000;/*取餘數*/
    }
}

void Big_int_sum(Big_int *a, Big_int *b)
{/* 大數相加用 */
    a->L += b->L;
    a->H += b->H;
    if(a->L >= 1000000000)
    {
        a->H += a->L / 1000000000;/*進位*/
        a->L %= 1000000000;/*取餘數*/
    }
}

void Big_int_print(Big_int *a)
{/* 大數印出用 */
    if(a->H > 0)
    {/* 高位元印出用*/
        printf("%d", a->H);
        printf("%09d", a->L);/*L<=99999999,則須補零印出*/
    }
    else
        printf("%d", a->L);
}

int main(void)
{
    int index = 0, n[100], max = 0;
    while(scanf("%d", &n[index]) != EOF)
    {/*輸入所有資料*/
        if(max < n[index])
            max = n[index];/*n之最大值*/
        index++;/*資料數*/
    }

    int i, count = 0;
    Big_int f = {0}, g = {0};
    for(i = 1; i <= max; i++)
    {/*迴圈數值疊加開始*/
        /*f += i;*/
        Big_int_add(&f, i);
        /*g += f;*/
        Big_int_sum(&g, &f);

        if(n[count] == i)
        {/*疊加到目標便印出*/
          /*printf("%ld %ld\n", f, g);*/
          Big_int_print(&f);
          printf(" ");
          Big_int_print(&g);
          printf("\n");
          count++;
        }
    }

    return 0;
}

引用網址:https://home.gamer.com.tw/TrackBack.php?sn=2688616
All rights reserved. 版權所有,保留一切權利

相關創作

同標籤作品搜尋:程式|解題系統|程式碼|C語言|C|迴圈|陣列|結構|PM2011

留言共 0 篇留言

我要留言提醒:您尚未登入,請先登入再留言

1喜歡★abc5593449 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:守護甜心-日奈森亞夢(酷... 後一篇:高中生程式解題系統 - ...

追蹤私訊切換新版閱覽

作品資料夾

hsaoyimeow
meowmeow meowmeowmeow, meow meow!看更多我要大聲說昨天10:53


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】