21 / 32
Mar 2017
4 months later

Cześć, próbowałem już ze 100 razy i ciągle czegoś nie rozumiem/ nie umiem zrobić - wyskakuje mi błędna odpowiedź. Czy ktoś może mi powiedzieć, o co chodzi?

#include < iostream >
using namespace std;

int main(){
unsigned int d;

cin>>d;
unsigned long int liczby[d];
unsigned long int silnie[d];
long double k;

for(int i=0;i<d;i++){
	cin>>liczby[i];
}

for(int i=0;i<d;i++){
	if (liczby[i]<=1){
		cout<<0<<" "<<1<<endl;
	}
	else if (liczby[i]<=9){
		silnie[i]=1;
		while(liczby[i]>1){
			silnie[i]=silnie[i]*liczby[i];
			liczby[i]--;
		}
		k = silnie[i];
		k/=100;
		k-=int(k);
		cout<<int(k*10)<<" "<<int(k*100-int(k*10)*10)<<endl;
		}
	else if (liczby[i]>9){
		cout<<0<<" "<<0<<endl;
	}
}
return 0;

}

a czy potrafisz przetestować swój program dla 10 wartości, czy też może jest to dla ciebie za trudne ?

4 years later

Witam, mam problem z uruchomieniem programu, pojawia się błąd: przekroczono limit czasu… Nie wiem co zrobiłem źle. Proszę bardziej doświadczonych kolegów o radę.
KOD:

#include

using namespace std;

int n, D, silnia=1;

int main()
{
cin >> D;
for(int i=1; i<=D; i++)
{
cin >> n;
if(n<=1)
{
silnia = 1;
cout << silnia/10 << " " << silnia%10;
}
else if(n>=2 && n<=1000000000)
{
for(int i=1; i<=n; i++)
{
silnia *= i;
}
cout << silnia/10 << " " << silnia%10 << endl;
}
}
return 0;
}

image
Kompiluje się w 0 sekund i zwraca poprawne wyniki, więc o co może chodzić???

A dla
2
1000000000
999999999

zamiast 2, może tam być D = 30

Witam, kod wyglada nastepująco :

//*** FCTRL3 - Dwie cyfry silni ***\

#include
#include <windows.h>

using namespace std;

int n, D, maks, silnia=1;

int main()
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),14);
cout << “*** FCTRL3 - Dwie cyfry silni ***” << endl << endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),15);
cout << "Podaj liczbe przypadkow: ";
cin >> D;

if(D>=1 && D<=30)
{
    for(int i=1; i<=D; i++)
    {
    cout << endl << "Podaj liczbe n! " << i << " przypadku: ";
    cin >> n;
    if(n<=1)
    {
        silnia = 1;
        cout << "Silnia n! wynosi: " << silnia/10 << " " << silnia%10 << endl;
    }
    else if(n>=2 && n<=1000000000)
    {
        cout << "Silnia " << n << "! wynosi: ";
        for(int i=1; i<=n; i++)
        {
            silnia *= i;
        }
        if(silnia>9)
        {
            cout << silnia/10 << " " << silnia%10 << endl;
        }
        else
        {
            cout << silnia/10 << " " << silnia%10 << endl;
        }
    }
    }
}
else if(D<=0)
{
    cout << endl << "Liczba musi byc dodatnia!";
}
return 0;

}
Niestety nie przyjmuje Sędzia

  1. windows.h nie jest obslugiwane.
  2. sedzia jest bezdusznym programem, ktory przyjmuje tylko okreslony w zadaniu format danych.
    teksty typu

sa uwazane za bledna odpowiedz.
3. czy zmienna

jest w stanie przechowac wynik obliczen?

  1. pkt 2 i 3 byly opisywane na forum w watkach dotyczacych tego zadania. szybciej jest troszke poszukac i poczytac niz czekac na odppwiedz, ktora moze nie przyjsc z powodu nieczytelnego wklejenia kodu.

Nie chciałbym psuć zabawy, ale w tym zadaniu trzeba zmienić podejście do zadania, bo double też nie wystarczy.

a nie próbowałeś przeczytać ten wątek, cały, ze zrozumieniem ? Wskazówka występuje kilka razy…