Примеры решения задач
Задача 1. Написать программу, которая принимает с клавиатуры число N и вычисляет сумму 1/20+1/21+1/22+…+1/2N.
#include <stdio.h>
int main() {
int N;
printf("Введите число N:\n");
scanf("%d", &N);
float result = 0;
int denominator = 1;
for (int i=0; i<=N; i++) {
result += (float) 1/denominator;
denominator *= 2;
}
printf("Результат равен %g\n", result);
return 0;
}
Задача 2. Написать программу, которая принимает с клавиатуры число N и выводит N первых членов последовательности Фибоначчи. Последовательность Фибоначчи задается следующими соотношениями: a0=0, a1=1 и an=an-1+an-2. Другими словами, очередной элемент этой последовательности равен сумме двух предыдущих.
#include <stdio.h>
int main() {
int N;
printf("Введите число N:\n");
scanf("%d", &N);
int a0 = 0;
int a1 = 1;
for (int i=0; i<=N; i++) {
int a2 = a0+a1;
printf("%d ", a2);
a0=a1;
a1=a2;
}
return 0;
}
Задача 3. Написать программу, переводит числа из десятичной системы исчисления в семеричную.
#include <stdio.h>
int main() {
int base = 7;
int number = 1000;
while (number > 0) {
printf("%d", number%base);
number/=base;
}
return 0;
}
Задача 4. Написать программу, которая принимает с клавиатуры число N и выводит следующий рисунок размера N:
N=1 |
N=2 |
N=3 |
N=4 |
… |
* |
* ** *
|
* ** *** ** *
|
* ** *** **** *** ** * |
... |
#include <stdio.h>
int main() {
int N;
printf("Введите число N:\n");
scanf("%d", &N);
//Выводим первую половину строк
for (int i=1; i<=N; i++) {
for (int j=1; j<=i; j++) {
printf("*");
}
printf("\n");
}
//Выводим вторую половину строк
for (int i=N-1; i>=1; i--) {
for (int j=1; j<=i; j++) {
printf("*");
}
printf("\n");
}
return 0;
}
Задача 5. Написать программу, которая принимает с клавиатуры число N и выводит следующий рисунок размера N:
N=1 |
N=2 |
N=3 |
N=4 |
… |
* |
*** *
|
***** * * *
|
******* * * * * * |
... |
int main() {
int N = 3;
//Количество звездочек в первой строке
int k = 2*N-1;
//Количество строк в треугольнике
int l = N-2;
//Количество пробелов перед последней *
int m = N-1;
for (int i=0; i<k; i++) {
printf("*");
}
printf("\n");
for (int i=0; i<l; i++) {
for (int j=0; j<i+1; j++) {
printf(" ");
}
printf("*");
for (int j=2*(N-i)-5; j>0; j--) {
printf(" ");
}
printf("*\n");
}
for (int i=0; i<m; i++) {
printf(" ");
}
printf("*\n");
return 0;
}