本题要求编写程序,找出给定一系列整数中的最小值。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int arr[100100] = { 0 };
int com(const void* a, const void* b)
{
return *(int*)a - *(int*)b;
}
int main()
{
int n;
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
}
qsort(arr, n, sizeof(arr[0]), com);
printf("min = %d\n", arr[0]);
return 0;
}
本题要求编写程序,计算序列 2/1+3/2+5/3+8/5+... 的前N项之和。注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。
#include <stdio.h>
#include <stdlib.h>
int main()
{
double a = 2;
double b = 1;
double mid = 0;
double num = 0;
int n;
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
num += (a / b);
mid = a + b;
b = a;
a = mid;
}
printf("%.2f\n", num);
return 0;
}
本题要求编写程序,计算序列部分和 1 - 1/4 + 1/7 - 1/10 + ... 直到最后一项的绝对值不大于给定精度eps。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
double a = 1;
double b = 1;
double num = 0;
double n;
scanf("%lf", &n);
int i = 1;
while (i)
{
if (i % 2 != 0)
{
num += (a / b);
b = b + 3;
}
else
{
num -= (a / b);
b = b + 3;
}
i++;
if ((a / b) <= n)
{
if (i % 2 != 0)
{
num += (a / b);
b = b + 3;
}
else
{
num -= (a / b);
b = b + 3;
}
break;
}
}
printf("sum = %.6f\n", num);
return 0;
}
猜数字游戏是令游戏机随机产生一个100以内的正整数,用户输入一个数对其进行猜测,需要你编写程序自动对其与随机产生的被猜数进行比较,并提示大了(“Too big”),还是小了(“Too small”),相等表示猜到了。如果猜到,则结束程序。程序还要求统计猜的次数,如果1次猜出该数,提示“Bingo!”;如果3次以内(包括第3次)猜到该数,则提示“Lucky You!”;如果超过3次但是在N(>3)次以内(包括第N次)猜到该数,则提示“Good Guess!”;如果超过N次都没有猜到,则提示“Game Over”,并结束程序。如果在到达N次之前,用户输入了一个负数,也输出“Game Over”,并结束程序。
输入
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int a, b;
int flag = 0;
scanf("%d%d", &a, &b);
int n;
for (int i = 1; i <= b; i++)
{
scanf("%d", &n);
if (n < 0)
{
printf("Game Over\n");
flag = 0;
break;
}
else if (n == a && i == 1)
{
printf("Bingo!\n");
flag = 0;
break;
}
else if (n < a)
{
printf("Too small\n");
flag = 1;
}
else if (n > a)
{
printf("Too big\n");
flag = 1;
}
else if (n == a && i <= 3)
{
printf("Lucky You!\n");
flag = 0;
break;
}
else if (n == a && i > 3)
{
printf("Good Guess!\n");
flag = 0;
break;
}
}
if (flag == 1)
{
printf("Game Over\n");
}
return 0;
}
这一道题打表会发现是斐波那契数列
一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到N对?
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int n, a = 2, b = 0, c = 0, i = 1;
scanf("%d", &n);
if (n > 1)
{
while (c < 2 * n)
{
c = a + b;
b = a;
a = c;
i++;
}
printf("%d\n", i);
}
else
{
printf("1\n");
}
return 0;
}
/斐波那契数列数列