Если х равно одному из чисел N!/1, N!/2, N!/3, ...,N!/N, то вывести на экран сообщение "Да", иначе - сообщение "Нет" - C (СИ)
Формулировка задачи:
Даны натуральные числа х и N(x>N). Если х равно одному из чисел N!/1, N!/2, N!/3, ...,N!/N, то вывести на экран сообщение "Да", иначе - сообщение "Нет".
Решение задачи: «Если х равно одному из чисел N!/1, N!/2, N!/3, ...,N!/N, то вывести на экран сообщение "Да", иначе - сообщение "Нет"»
textual
Листинг программы
#include <stdio.h>
int fact(int n)
{
if(n==1) return n;
return fact(n-1)*n;
}
int main()
{
int x,N,i;
printf("Enter x: ");
scanf("%d",&x);
printf("Enter N: ");
scanf("%d",&N);
for(i=N;i>0;i--)
{
if(x==fact(i)/i)
{
printf("DA");
break;
}
}
if(i==0)
printf("NET");
return 0;
}
Объяснение кода листинга программы
Код выполняет вычисление факториала числа N и затем перебирает все числа от N до 1. Для каждого числа проверяется, равно ли оно x, поделенному на факториал этого числа. Если это так, то выводится сообщение DA и цикл прерывается. Если после проверки всех чисел сообщение DA не выведено, то выводится сообщение NET.