Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите написать программу на си

Addk Знаток (255), открыт 1 неделю назад
Через int main
2 ответа
Axeom Мастер (2242) 1 неделю назад
 #include <iostream> 
using namespace std;

int main() {
// Переменные для хранения результатов
int numerator = 0; // Числитель
int factorial = 1; // Знаменатель (5!)

// Вычисляем 5!
for(int i = 1; i <= 5; i++) {
factorial *= i;
}

// Вычисляем сумму 3^i от i=0 до 5
for(int i = 0; i <= 5; i++) {
int power = 1;
// Вычисляем 3^i
for(int j = 1; j <= i; j++) {
power *= 3;
}
numerator += power;
}

// Вычисляем и выводим результат
double P = (double)numerator / factorial;

cout << "P = " << P << endl;

return 0;
}
Ксения Райт Гений (97161) 1 неделю назад
Вот так правильно на Си:

#include <stdio.h>

int gcd(int x, int y)
{ int z = x % y; return z ? gcd(y, z) : y; }

int main()
{
int P = 1, p = 1, F = 1, g, i;
for (i = 1; i <= 5; ++i) { P += (p *= 3); F *= i; }
g = gcd(P, F); P /= g; F /= g;
printf("P = %d/%d ≈ %.16g\n", P, F, double(P) / F);
}
Так вычисляются точное значение в виде несократимой дроби (для чего понадобится НОД, то есть наибольший общий делитель суммы в числителе и факториала в знаменателе, который по-английски GCD) и его представление в виде десятичной дроби:
Похожие вопросы