C 斐波那契级数和

C 斐波那契级数和,c,C,我有以下代码: #include<stdio.h> void main() { int a = -1, b = 1, c = 0, i, n, sum = 0 ; printf("Enter the limit : ") ; scanf("%d", &n) ; printf("\nThe fibonacci series is :") ; for(i = 1 ; i <= n ; i++) { c = a + b ; printf("

我有以下代码:

#include<stdio.h>
void main()
{
  int a = -1, b = 1, c = 0, i, n, sum = 0 ;
  printf("Enter the limit : ") ;
  scanf("%d", &n) ;
  printf("\nThe fibonacci series is :") ;
  for(i = 1 ; i <= n ; i++)
  {
   c = a + b ;
   printf("%d-", c) ;
   sum = sum + c ;
   a = b ;
   b = c ;
  }
  printf("\nThe sum of the fibonacci series is : %d", sum) ;
  printf("\n");
}
#包括
void main()
{
int a=-1,b=1,c=0,i,n,和=0;
printf(“输入限制:”);
scanf(“%d”和“&n”);
printf(“\n斐波那契级数为:”);

对于(i=1;i您可以这样做(您必须在顶部(第4行)声明
number
found=0)):

因此,它会检查求和是否大于7位数字!如果是,则最后一个斐波那契数字就是您搜索的数字,即使求和大于7位数字的数字!发现只有第一个数字被分配给specialNumber

所以你的程序应该是这样的:

#include <stdio.h>

int main() {

    int count, sum, specialNumber, fibonacci, numberOne, numberTow, found;
    sum = 0, fibonacci = 0, numberOne = -1, numberTow = 1, found = 0;
    int n;

    printf("Enter the limit :\n>") ;
    scanf("%d", &n) ;

    printf("\nThe fibonacci series is :") ;
    for(count = 1 ; count <= n ; count++) {
        fibonacci = numberOne + numberTow;
        printf("\n%d", fibonacci);
        sum += fibonacci;
        if(sum >= 1000000 && !found) {
            specialNumber = fibonacci;
            found = 1;
        }

        numberOne = numberTow;
        numberTow = fibonacci;
    }

    printf("\nThe sum of the fibonacci series is : %d\n", sum);
    printf("%d makes the sum bigger than 7 digits", specialNumber);

  return 0;

}
#包括
int main(){
整数计数,和,特殊数,斐波那契,numberOne,numberTow,已找到;
sum=0,fibonacci=0,numberOne=-1,numberTow=1,found=0;
int n;
printf(“输入限制:\n>”;
scanf(“%d”和“&n”);
printf(“\n斐波那契级数为:”);
对于(计数=1;计数=1000000&&!已找到){
特殊数字=斐波那契;
发现=1;
}
numberOne=numberTow;
numberTow=斐波那契;
}
printf(“\n斐波那契级数的和为:%d\n”,和);
printf(“%d使总和大于7位”,特殊数字);
返回0;
}

如果要获得七位数字的第一个和,请将阈值设置为一百万,也称为
1e6=10**6=1000000
。请注意
1000000
中有七位数字

如果希望总和超过七位数,请将阈值设置为1000万。该数字有八位数

下面的代码将实现这一技巧。请注意,我们使用的不是
for
循环,而是
while
循环,它在总和小于阈值时不断迭代

# include <stdio.h>

int main() {
  int previous, current = 0, next = 1,
      sum = current, threshold;
  printf("Enter the threshold: ") ;
  scanf("%d", &threshold) ;
  printf("Fibonacci series: %d", current) ;
  while (sum < threshold) {
    previous = current;
    current = next;
    next = previous + current;
    printf(" + %d", current) ;
    sum += current;
  }
  printf(" = %d\n", sum);
  return 0;
}
#包括
int main(){
int PREVICE,current=0,next=1,
总和=电流,阈值;
printf(“输入阈值:”);
扫描频率(“%d”和阈值);
printf(“斐波那契级数:%d”,当前);
while(总和<阈值){
先前=当前;
当前=下一个;
下一个=上一个+当前;
printf(“+%d”,当前);
总和+=电流;
}
printf(“=%d\n”,总和);
返回0;
}
#包括
void main()
{
int a=-1,b=1,c=0,i,n,term1,term2;
长和=0;
printf(“输入限制:”);
scanf(“%d”和“&n”);
printf(“\n斐波那契级数为:”);
对于(i=1;i=1000000){
term1=a;
term2=b;
打破
}
a=b;
b=c;
}
printf(“\n斐波那契级数的和为:%ld”,和);
printf(“\n术语为%d和%d”,术语1,术语2);
printf(“\n”);
}
当这个程序找到使总和超过7位的正确项时,它就会中断循环。
希望我能理解你的意思。

尽可能少地更改代码:

# include <stdio.h>
int main(int argc, char ** argv)
{
    int a = -1, b = 1, c = 0, i = 1, n = 0, sum = 0 ;
    printf("\nThe fibonacci series is :") ;
    while (sum <= 10000000)
    {
        c = a + b ;
        printf("%d-", c) ;
        sum = sum + c ;
        a = b ;
        b = c ;
        n = i;
        i++;
    }
    printf("\nThe sum of the fibonacci series is : %d", sum) ;
    printf("\nThe term is %d the value is %d", n , c);
    printf("\n");
    return 0;
}   
#包括
int main(int argc,字符**argv)
{
int a=-1,b=1,c=0,i=1,n=0,和=0;
printf(“\n斐波那契级数为:”);

虽然(sum如果
循环,它不是一个
循环,它是一个
循环!所以treshold是错误的,例如,我输入了一个20的treshold,我得到了一个20的和,treshold不是应该大于和吗?感谢上面的代码,fibonacci序列会继续,直到和至少等于阈值。如果你想要和要超过阈值,只需将
while
条件从
(sum
更改为
(sum)(如果这是一个实际问题,请使用数学而不是for循环。是8位,大于7位。
#include<stdio.h>
void main()
{
 int a = -1, b = 1, c = 0, i, n, term1, term2;
 long sum = 0;
 printf("Enter the limit : ");
 scanf("%d", &n);
 printf("\nThe fibonacci series is :");
 for(i = 1 ; i <= n ; i++)
 {
  c = a + b ;
  printf("%d \n", c) ;
  sum = sum + c ;
  if(sum >= 1000000){
  term1 = a;
  term2 = b;
  break;
  }
a = b ;
b = c ;
}

printf("\nThe sum of the fibonacci series is : %ld", sum);
printf("\n terms are %d and %d", term1, term2);
printf("\n");
}
# include <stdio.h>
int main(int argc, char ** argv)
{
    int a = -1, b = 1, c = 0, i = 1, n = 0, sum = 0 ;
    printf("\nThe fibonacci series is :") ;
    while (sum <= 10000000)
    {
        c = a + b ;
        printf("%d-", c) ;
        sum = sum + c ;
        a = b ;
        b = c ;
        n = i;
        i++;
    }
    printf("\nThe sum of the fibonacci series is : %d", sum) ;
    printf("\nThe term is %d the value is %d", n , c);
    printf("\n");
    return 0;
}