Created
November 27, 2020 04:05
-
-
Save modos/eb9c0a70ed06f0c377a46d6b0b7ec3de to your computer and use it in GitHub Desktop.
مسابقه ی آسان
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/****************************************************************************** | |
Online C++ Compiler. | |
Code, Compile, Run and Debug C++ program online. | |
Write your code in this editor and press "Run" button to compile and execute it. | |
*******************************************************************************/ | |
#include <iostream> | |
using namespace std; | |
#define MAX 1000 | |
int multiply(int x, int res[], int res_size); | |
void factorial(int n, int birth) | |
{ | |
int res[MAX]; | |
int counter = 0; | |
res[0] = 1; | |
int res_size = 1; | |
for (int x=2; x<=n; x++) | |
res_size = multiply(x, res, res_size); | |
for (int i=res_size-1; i>=0; i--) | |
if (res[i] == birth){counter++;} | |
cout << counter; | |
} | |
int multiply(int x, int res[], int res_size) | |
{ | |
int carry = 0; | |
for (int i=0; i<res_size; i++) | |
{ | |
int prod = res[i] * x + carry; | |
res[i] = prod % 10; | |
carry = prod/10; | |
} | |
while (carry) | |
{ | |
res[res_size] = carry%10; | |
carry = carry/10; | |
res_size++; | |
} | |
return res_size; | |
} | |
int main() | |
{ | |
int n, birth; | |
cin >> n >> birth; | |
factorial(n, birth); | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment