洛十三 发表于 2024-7-10 18:55:42

求助

本帖最后由 洛十三 于 2024-7-10 19:29 编辑

               
求斐波拉契数列的前二十项之和。

不用排序,把一个数组中的负数放置在数组的前面

求一个一维数组中第二大的元素,不允许排序

求出一个数组中连续的子数组之和中的最大值。

假设有一个数组a,能不能从数组a中任选M个元素(M<=N),使其和为K。

人造人 发表于 2024-7-10 19:55:50

同学,自己的作业要自己做
让别人帮你写作业,这样很不好

洛十三 发表于 2024-7-10 20:03:46

人造人 发表于 2024-7-10 19:55
同学,自己的作业要自己做
让别人帮你写作业,这样很不好

//求斐波拉契数列的前二十项之和。
#include<stdio.h>
int main()
{
        int sum;
        int a={1};
        printf("前二十项之和为:");
        scanf("%d",&sum);
        int i;
        for(i=2;i<20;i++)
        {
                if(a==a+a)
                {
                        printf("%d",sum);
                }
        }
}
尽力了,求大佬指点

某一个“天” 发表于 2024-7-10 20:06:25

同学,自己的作业要自己做{:10_256:}

查文言 发表于 2024-7-10 20:54:59

num1 = input("请输入第一个整数:")
num2 = input("请输入第二个整数:")
x=int(num1)
y=int(num2)

if x < y:
    print("第一个数比第二个数小!")

if x > y:
    print("第一个数比第二个数大!")

if x == y:
    print("第一个数和第二个数一样大!")
请教大佬这个代码哪里有问题

zhangjinxuan 发表于 2024-7-10 21:24:44

Q1:

#include<stdio.h>
int main()
{
    long long sum=0;
    long long a={1};
        //scanf("%d",&sum);
    printf("前二十项之和为:");
    int i;
    for(i=2;i<=20;i++)
    {
            a=a+a;
            sum+=a;
    }
    printf("%lld\n", sum);
}

这个数列可能有很多定义,例如从 0 开头从 1 开头均有,可以自己修改。

Q2:

#include<stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    int a,t,tot=-1;
    for (int i=0;i<n;++i) scanf("%d",&a);
    for (int i=0;i<n;++i) if(a<0) t[++tot]=a;
        for (int i=0;i<n;++i) if(a>=0) t[++tot]=a;
        for (int i=0;i<n;++i) printf("%d ", t);
}

Q3:

#include<stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    int a,mx1=0,mx2=0;
    for (int i=0;i<n;++i) {
                scanf("%d",&a);
                if (a >= mx1) {
                        mx2 = mx1;
                        mx1 = a;
                } else if (a >= mx2) {
                        mx2 = a;
                }
    }
    printf("%d %d\n", mx1, mx2);
}

Q4:

#include<stdio.h>
#define max(a,b) (a>b?a:b)
int main()
{
    int n;
    scanf("%d",&n);
    int a,ans={},res=0;
    for (int i=0;i<n;++i) {
                scanf("%d",&a);
                if(i)ans=max(ans+a,a);
                else ans=a;
                res=max(res,ans);
    }
    printf("%d\n",res);
}

Q5:

你这个问题有点复杂啊,如果可以的话,可以用动态规划(背包问题),还是不行可以考虑用生成函数。

代码我就不放了,有点复杂。

洛十三 发表于 2024-7-10 22:37:36

@Fishc

FishC 发表于 2024-7-10 22:37:39

洛十三 发表于 2024-07-10 22:37
@Fishc

当然没问题!请问鱼油有什么问题呢?我会尽我所能用通俗易懂的方式来解答,而且还会带点幽默感哦,让我们一起快乐地学习计算机知识吧!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

洛十三 发表于 2024-7-10 22:39:30

FishC 发表于 2024-7-10 22:37
当然没问题!请问鱼油有什么问题呢?我会尽我所能用通俗易懂的方式来解答,而且还会带点幽默感哦,让我 ...

//求斐波拉契数列的前二十项之和。
#include<stdio.h>
int main()
{
      int sum;
      int a={1};
      printf("前二十项之和为:");
      scanf("%d",&sum);
      int i;
      for(i=2;i<20;i++)
      {
                if(a==a+a)
                {
                        printf("%d",sum);
                }
      }
}
哪里错了

FishC 发表于 2024-7-10 22:39:56

洛十三 发表于 2024-07-10 22:39
//求斐波拉契数列的前二十项之和。
#include
int ma ...

鱼油你好,看起来你希望计算斐波那契数列(也叫斐波拉契数列)的前二十项之和。让我来帮你吧!

首先,斐波那契数列是这样一个序列:0, 1, 1, 2, 3, 5, 8, 13, 21, 34... 其中前两项是固定的,分别为0和1,从第三项开始,每一项都是前两项之和。

我们先看看类似这样的代码怎么写:

#include <stdio.h>

int main() {
    // 声明变量
    int sum = 0;
    int a = 0; // 第一个斐波那契数
    int b = 1; // 第二个斐波那契数
    int next;

    // 计算前20项的和
    for(int i = 1; i <= 20; i++) {
      printf("Fibonacci number %d: %d\n", i, a); // 输出当前斐波那契数
      sum += a;    // 把当前斐波那契数加到总和中
      next = a + b; // 计算下一个斐波那契数
      a = b;
      b = next;
    }
   
    printf("前二十项之和为: %d\n", sum);

    return 0;
}

在这个程序中,我们首先声明了一些变量:`sum` 用于保存前二十项的和,`a` 和 `b` 分别表示当前和下一个斐波那契数。

在 `for` 循环里,我们从第1项(`i = 1`)算到第20项(`i <= 20`)。在每一次循环中,我们先打印当前的斐波那契数,再把它加到 `sum` 里,并且用 `next = a + b` 来计算下一个斐波那契数。

最后,我们输出前二十项之和。

有时候编程就像做瑜伽,一开始觉得很难,但是坚持下去,总能看到成效!希望这些解释能帮你理解斐波那契数列的计算过程。如果有任何疑问,请随时提出来哦!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

小甲鱼的二师兄 发表于 2024-7-11 04:30:47

#include <stdio.h>

int main() {
    int n = 20;
    long long fib;
    fib = 0;
    fib = 1;
    long long sum = fib + fib;

    for (int i = 2; i < n; i++) {
      fib = fib + fib;
      sum += fib;
    }

    printf("斐波那契数列的前二十项之和: %lld\n", sum);
    return 0;
}

行客 发表于 2024-7-12 13:24:49

本帖最后由 行客 于 2024-7-12 13:37 编辑

1. 斐波那契数列的前二十项之和
斐波那契数列定义为:F(0)=0, F(1)=1, 且对于n>1, F(n)=F(n-1)+F(n-2)。我们先计算前20项,再求和。
计算得到斐波那契数列的前20项(这里省略具体计算过程): [ {总和} = F(0)+F(1)+...+F(19) = 10945 ]

#include <stdio.h>

int main() {
    long long sum = 0;
    long long a = 0, b = 1, c;

    for (int i = 0; i < 20; i++) {
      if (i <= 1)
            c = i;
      else {
            c = a + b;
            a = b;
            b = c;
      }
      sum += c;
    }

    printf("The sum of the first 20 Fibonacci numbers is: %lld\n", sum);
    return 0;
}
页: [1]
查看完整版本: 求助