![](/img/trans.png)
[英]Algorithm to find count of numbers between 2 integers where digits do not repeat
[英]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;
}
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.