簡體   English   中英

計算自然數的算法

[英]Algorithm to count natural numbers

我正在創建一個計算自然數的算法,但是 output 是一個長數:

1532752%  

這是我嘗試過的:

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

int sumN(int N){
    int S = 0;
    int I = 1;
    int *p = &I;
    for(int i = *p; i < N; i++){
        S += S + i;
        I += i + 1;

        if( i <= N){
            continue;
        }
    }
    return S;
}

int main(void){
    int N = 15;
    printf("%i", sumN(N));
    return EXIT_SUCCESS;
}

我是 C 的新手,希望得到反饋,因為我可能遺漏了很多技術信息。

簡易版

 int sum =0;
 For (int i =1; i<=N; i++){
     sum += i;
  }

這忽略了更簡單的 n*(n+1)/2 公式

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

int sumN(int N)
{
    return N*(N+1)/2;
}

int sumN2(int N)
{
    int sum = 0;
    for(int i=1; i<=N; sum+=i++);
    return sum;
}

int main(void){
    int N = 15;
    printf("%i\n", sumN(N));
    printf("%i\n", sumN2(N));
    return EXIT_SUCCESS;
}

Output

120 
120

因為 15+14+13+12+11+10+9+8+7+6+5+4+3+2+1 = 120

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM