鱼C论坛

 找回密码
 立即注册
查看: 1627|回复: 11

求助

[复制链接]
发表于 2024-7-10 18:55:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

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

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

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

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

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

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-7-10 19:55:50 | 显示全部楼层
同学,自己的作业要自己做
让别人帮你写作业,这样很不好
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2024-7-10 20:03:46 | 显示全部楼层
人造人 发表于 2024-7-10 19:55
同学,自己的作业要自己做
让别人帮你写作业,这样很不好

//求斐波拉契数列的前二十项之和。
#include<stdio.h>
int main()
{
        int sum;
        int a[20]={1};
        printf("前二十项之和为:");
        scanf("%d",&sum);
        int i;
        for(i=2;i<20;i++)
        {
                if(a[i+2]==a[i+1]+a[i])
                {
                        printf("%d",sum);
                }
        }
}
尽力了,求大佬指点
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-7-10 20:06:25 | 显示全部楼层
同学,自己的作业要自己做
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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("第一个数和第二个数一样大!")
请教大佬这个代码哪里有问题
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-7-10 21:24:44 | 显示全部楼层
Q1:

  1. #include<stdio.h>
  2. int main()
  3. {
  4.     long long sum=0;
  5.     long long a[21]={1};
  6.         //scanf("%d",&sum);
  7.     printf("前二十项之和为:");
  8.     int i;
  9.     for(i=2;i<=20;i++)
  10.     {
  11.             a[i]=a[i-1]+a[i-2];
  12.             sum+=a[i];
  13.     }
  14.     printf("%lld\n", sum);
  15. }
复制代码


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

Q2:

  1. #include<stdio.h>
  2. int main()
  3. {
  4.     int n;
  5.     scanf("%d",&n);
  6.     int a[n],t[n],tot=-1;
  7.     for (int i=0;i<n;++i) scanf("%d",&a[i]);
  8.     for (int i=0;i<n;++i) if(a[i]<0) t[++tot]=a[i];
  9.         for (int i=0;i<n;++i) if(a[i]>=0) t[++tot]=a[i];
  10.         for (int i=0;i<n;++i) printf("%d ", t[i]);
  11. }
复制代码


Q3:

  1. #include<stdio.h>
  2. int main()
  3. {
  4.     int n;
  5.     scanf("%d",&n);
  6.     int a[n],mx1=0,mx2=0;
  7.     for (int i=0;i<n;++i) {
  8.                 scanf("%d",&a[i]);
  9.                 if (a[i] >= mx1) {
  10.                         mx2 = mx1;
  11.                         mx1 = a[i];
  12.                 } else if (a[i] >= mx2) {
  13.                         mx2 = a[i];
  14.                 }
  15.     }
  16.     printf("%d %d\n", mx1, mx2);
  17. }
复制代码


Q4:

  1. #include<stdio.h>
  2. #define max(a,b) (a>b?a:b)
  3. int main()
  4. {
  5.     int n;
  6.     scanf("%d",&n);
  7.     int a[n],ans[n]={},res=0;
  8.     for (int i=0;i<n;++i) {
  9.                 scanf("%d",&a[i]);
  10.                 if(i)ans[i]=max(ans[i-1]+a[i],a[i]);
  11.                 else ans[i]=a[i];
  12.                 res=max(res,ans[i]);
  13.     }
  14.     printf("%d\n",res);
  15. }
复制代码


Q5:

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

代码我就不放了,有点复杂。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-7-10 22:37:36 | 显示全部楼层
@Fishc
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-7-10 22:37:39 | 显示全部楼层


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

使用道具 举报

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

//求斐波拉契数列的前二十项之和。
#include<stdio.h>
int main()
{
        int sum;
        int a[20]={1};
        printf("前二十项之和为:");
        scanf("%d",&sum);
        int i;
        for(i=2;i<20;i++)
        {
                if(a[i+2]==a[i+1]+a[i])
                {
                        printf("%d",sum);
                }
        }
}
哪里错了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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,从第三项开始,每一项都是前两项之和。

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

  1. #include <stdio.h>

  2. int main() {
  3.     // 声明变量
  4.     int sum = 0;
  5.     int a = 0; // 第一个斐波那契数
  6.     int b = 1; // 第二个斐波那契数
  7.     int next;

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

  18.     return 0;
  19. }
复制代码


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

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

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

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

使用道具 举报

发表于 2024-7-11 04:30:47 | 显示全部楼层
  1. #include <stdio.h>

  2. int main() {
  3.     int n = 20;
  4.     long long fib[n];
  5.     fib[0] = 0;
  6.     fib[1] = 1;
  7.     long long sum = fib[0] + fib[1];

  8.     for (int i = 2; i < n; i++) {
  9.         fib[i] = fib[i - 1] + fib[i - 2];
  10.         sum += fib[i];
  11.     }

  12.     printf("斐波那契数列的前二十项之和: %lld\n", sum);
  13.     return 0;
  14. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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 ]

  1. #include <stdio.h>

  2. int main() {
  3.     long long sum = 0;
  4.     long long a = 0, b = 1, c;

  5.     for (int i = 0; i < 20; i++) {
  6.         if (i <= 1)
  7.             c = i;
  8.         else {
  9.             c = a + b;
  10.             a = b;
  11.             b = c;
  12.         }
  13.         sum += c;
  14.     }

  15.     printf("The sum of the first 20 Fibonacci numbers is: %lld\n", sum);
  16.     return 0;
  17. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-10 09:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表