(Zadatak sa Republičkog takmičenja 2009.) Napisati program kojim se za dati prirodan broj određuje i ispisuje posljednja cifra različita od nule proizvoda 1*2*3...*n. Na primjer, za n=7 proizvod je 1*2*3*4*5*6*7=5040, pa je tračeni rezultat 4. Testni primjeri: a) Za n=7 proizvod je 1*2*3*4*5*6*7=5040, pa je traženi rezultat 4. b) Za n=6 proizvod je 1*2*3*4*5*6=720, pa je traženi rezultat 2. c) Za n=8 proizvod je 1*2*3*4*5*6*7*8=40320, pa je traženi rezultat 2. d) Za n=5 proizvod je 1*2*3*4*5=120, pa je traženi rezultat 2.
Rješenje:
#include<iostream>
#include<cstdlib>
using namespace std;
int main()
{
int n,i,c=0,f=1;
cout<<"Unesite broj";
cin>>n;
cout<<"Za n="<<n<<" proizvod je ";
for (i=1; i<=n; i++)
{ f=f*i; if (i<n)cout<<i<<"*";
else cout<<i; }
cout<<"="<<f<<", pa je trazeni rezultat ";
while (f>0)
{ c=f%10; f=f/10;
if (c>0){ cout<<c<<endl<<endl<<endl; break;}}
system("Pause");
return 0; }
Rješenje:
#include<iostream>
#include<cstdlib>
using namespace std;
int main()
{
int n,i,c=0,f=1;
cout<<"Unesite broj";
cin>>n;
cout<<"Za n="<<n<<" proizvod je ";
for (i=1; i<=n; i++)
{ f=f*i; if (i<n)cout<<i<<"*";
else cout<<i; }
cout<<"="<<f<<", pa je trazeni rezultat ";
while (f>0)
{ c=f%10; f=f/10;
if (c>0){ cout<<c<<endl<<endl<<endl; break;}}
system("Pause");
return 0; }