|
发表于 2024-7-10 21:24:44
|
显示全部楼层
Q1:
- #include<stdio.h>
- int main()
- {
- long long sum=0;
- long long a[21]={1};
- //scanf("%d",&sum);
- printf("前二十项之和为:");
- int i;
- for(i=2;i<=20;i++)
- {
- a[i]=a[i-1]+a[i-2];
- sum+=a[i];
- }
- printf("%lld\n", sum);
- }
复制代码
这个数列可能有很多定义,例如从 0 开头从 1 开头均有,可以自己修改。
Q2:
- #include<stdio.h>
- int main()
- {
- int n;
- scanf("%d",&n);
- int a[n],t[n],tot=-1;
- for (int i=0;i<n;++i) scanf("%d",&a[i]);
- for (int i=0;i<n;++i) if(a[i]<0) t[++tot]=a[i];
- for (int i=0;i<n;++i) if(a[i]>=0) t[++tot]=a[i];
- for (int i=0;i<n;++i) printf("%d ", t[i]);
- }
复制代码
Q3:
- #include<stdio.h>
- int main()
- {
- int n;
- scanf("%d",&n);
- int a[n],mx1=0,mx2=0;
- for (int i=0;i<n;++i) {
- scanf("%d",&a[i]);
- if (a[i] >= mx1) {
- mx2 = mx1;
- mx1 = a[i];
- } else if (a[i] >= mx2) {
- mx2 = a[i];
- }
- }
- 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[n],ans[n]={},res=0;
- for (int i=0;i<n;++i) {
- scanf("%d",&a[i]);
- if(i)ans[i]=max(ans[i-1]+a[i],a[i]);
- else ans[i]=a[i];
- res=max(res,ans[i]);
- }
- printf("%d\n",res);
- }
复制代码
Q5:
你这个问题有点复杂啊,如果可以的话,可以用动态规划(背包问题),还是不行可以考虑用生成函数。
代码我就不放了,有点复杂。 |
|