数列 1 1 2 3 5 8 13 21 ... 被称为斐波纳数列。
输入若干个正整数N,输出这个序列的前 N 项的和。
题干 | 数列 1 1 2 3 5 8 13 21 ... 被称为斐波纳数列。 输入若干个正整数N,输出这个序列的前 N 项的和。 | ||
输入样例 | 3 5 4 1 | ||
输出样例 | 4 12 7 1 |
#include<stdio.h>
int fbnq(int n) {
int i = 1, a = 1, b = 1,c,s=0;
for (i = 1; i <= n; i++) {
s += a;
c = a + b;
a = b;
b = c;
}
return s;
}
int main() {
int n;
while (~scanf("%d", &n)) {
printf("%d\n", fbnq(n));
}
return 0;
}
数列 0 1 1 2 3 5 8 13 21 ... 被称为斐波纳数列。
输入若干个正整数N,输出这个序列的前 N 项。
题干 | 数列 0 1 1 2 3 5 8 13 21 ... 被称为斐波纳数列。 输入若干个正整数N,输出这个序列的前 N 项。 | ||
输入样例 | 3 5 1 4 | ||
输出样例 | 0,1,1, 0,1,1,2,3, 0, 0,1,1,2, |
#include<stdio.h>
int fbnq(int n) {
int i = 1, a = 0, b = 1,c,s=0;
for (i = 1; i <= n; i++) {
printf("%d,",a);
c = a + b;
a = b;
b = c;
}
return s;
}
int main() {
int n;
while (~scanf("%d", &n)) {
fbnq(n);
printf("\n");
}
return 0;
}
a数组n个元素插入法升序排序,请补充代码。
题干 | a数组n个元素插入法升序排序,请补充代码。 void fun(int a[],int n) { int i,j,t; for(i=1;i<=n-1;i++) { t=a[i]; /****************/ /****************/ a[j+1]=t; } } |
//只填写两行/****/之间要求的语句列表
for(j=i-1;j>=0;j--)
if(a[j]>t)
a[j+1]=a[j];
else break;
输入一个二维数组 M[12][12],根据输入要求,求出二维数组下方绿色部分元素的平均值或和。
第一行输入一大写字母,若为 S,则求和,若为 M,则求平均值。
接下来 12 行,每行包含 12 个用空格隔开的浮点数,输出结果保留一位小数。
数据范围:100.0≤M[i][j]≤100.0。
输入样例 | S -6.0 0.7 -8.4 -5.7 -4.1 7.6 9.5 -9.7 4.1 0.6 -6.5 -4.9 6.6 4.9 -3.1 5.3 0.3 -4.5 3.9 -1.5 6.6 7.0 5.1 2.5 -8.5 1.8 -2.7 0.1 -4.9 -7.2 4.3 6.0 -1.4 2.7 -3.0 2.0 4.8 -7.0 -1.3 0.8 1.0 4.5 -1.1 -2.9 -3.9 -3.9 -8.9 5.8 -2.1 -9.6 5.1 0.2 1.0 -1.7 6.4 4.1 2.8 -6.9 2.4 9.3 -6.0 -9.1 -7.0 -7.0 7.8 5.1 6.9 -7.6 0.4 -7.2 5.5 6.0 -1.9 5.5 1.9 -8.5 -5.3 2.3 -9.3 2.0 -0.2 1.2 5.6 -1.8 8.2 2.3 3.5 1.4 4.0 -5.1 -6.9 -2.8 1.7 -7.0 7.8 1.8 -6.0 -4.1 -4.6 -9.4 -4.9 -4.1 4.2 6.3 -2.8 8.7 8.1 -0.9 8.8 -6.5 -4.3 6.1 -6.2 -3.9 -7.0 7.3 5.0 -0.9 -0.0 5.6 -2.4 1.4 8.5 -2.2 0.9 5.3 3.6 8.8 -8.1 3.0 -3.1 6.5 -3.8 -6.4 2.3 4.2 -9.8 -0.3 -9.9 -7.4 3.5 1.5 -0.2 7.0 | ||
输出样例 | -11.9 |
#include<stdio.h>
int main() {
int n = 0, i, j;
char c;
scanf("%c", &c);
double M[12][12],s=0;
for (i = 0; i < 12; i++) {
for (j = 0; j < 12; j++) {
scanf("%lf", &M[i][j]);
if (i + j > 11 && j<i) {
s += M[i][j];
n++;
}
}
}
if (c == 'S') {
printf("%.1lf\n", s);
}
else {
printf("%.1lf\n", s/n);
}
return 0;
}
输入一个二维数组 M[12][12],根据输入要求,求出二维数组左方绿色部分元素的平均值或和。
第一行输入一大写字母,若为 S,则求和,若为 M,则求平均值。
接下来 12 行,每行包含 12 个用空格隔开的浮点数,输出结果保留一位小数。
数据范围:100.0≤M[i][j]≤100.0。
#include<stdio.h>
int main() {
int n = 0, i, j;
char c;
scanf("%c", &c);
double M[12][12], s = 0;
for (i = 0; i < 12; i++) {
for (j = 0; j < 12; j++) {
scanf("%lf", &M[i][j]);
if (i + j < 11 && j < i) {
s += M[i][j];
n++;
}
}
}
if (c == 'S') {
printf("%.1lf\n", s);
}
else {
printf("%.1lf\n", s / n);
}
return 0;
}