Cyfry dziesiątek i jedności w silni liczby

0

Napisalem program ktory liczy silnie a nastepnie wypisuje jej cyfre dziesiatek i jednosci ale program dziala dobrze tylko dla silni liczb 1-19, od 20 juz wyniki sa nie ok, a chce zeby dzialalo to w zakresie 1-30.

#include <stdio.h>
#include <stdlib.h>

int main(void){
  int n=0;
  int t=1;
  int d=0;
  int j=0;
  int r=0;
  int l=0;
  printf("; ");
  scanf("%i", &n);

  for(int i=1;i<=n;++i)
    t*=i;

  printf("%i\n\n", t);

  d=t/10;
  if(d>9){
    r=d%10;
    printf("%i ", r);
  }
  if(d<10)
  printf("%i ", d);

  l=d*10;
  j=t-l;
  printf("%i\n", j);

  return 0;
}
1

Do tego zadania nie masz liczyć silni.
Musisz tutaj użyć głowy, nie siły.

0

co do silni to się nie znam a reszta to tak:

int jedności=liczba%10;//liczba jedności
int dziesiątki=(liczba%100)/10;//dziesiątki i tak dalej ale nie jestem pewien % bo używam c++ 
0

Jak do tego zadania nie mam liczyc silni.... Mam obliczyc silnie a potem wypisac oddzielnie liczby dziesiatek i jednosci, i to wszystko ladnie dziala ale dopuki wypisuje dziesiatki i jednosci silni do 19, od 20 crash, a chce zeby dzialalo do 30, ma ktos jakies pomysly ?

1

Powodem wysypania się programu jest to, że liczysz silnie (tylko po co ?) i szybko przekraczasz zakres dla Twojej zmiennej.
Popatrz sobie np tu http://pl.wikipedia.org/wiki/Silnia cyfrę dziesiątek i jedności w silni dla np 10!. Potem popatrz dalej dla np 15! i popatrz bliżej dla np 4!

0

20! to 2.432902e+18, jestes pewiem, ze masz gdzie zmiescic taka liczbe? ;)

0

Oh przepraszam wczesniej cos zle robilem, okej dalem unsigned zmiennej t i liczy ladnie do 30.Mysle ze dobrze wykonalem tresc zadania:

Wejście napisał(a)

W pierwszej linii wejścia znajduje się jedna liczba całkowia D (1≤D≤30), oznaczjąca liczbę przypadków do rozważenia. Opis każdego przypadku składa się z jednej linii, w której znajduje się jedna nieujemna liczba całkowita n (0 ≤ n ≤ 1 000 000 000).

Wyjście napisał(a)

Dla każdego przypadku z wejścia. Twój program powinien wypisać w osobnej linii dokładnie dwie cyfry (oddzielone pojedynczą spacją): cyfrę dziesiątek i cyfrę jedności liczby n! zapisanej w systemie dziesiętnym.

zamiana znaczników <code> na <quote> - @furious programming

0
_user napisał(a):

Mysle ze dobrze wykonalem tresc zadania:

Tu nie chodzi o to żeby liczyć silnię, tylko o to żeby zrozumieć zadanie. wyżej masz wszystko co potrzebne żeby zrobić je w zasadzie bez liczenia silni.

0

Tak widzialem odpowiedzi, spojrzalem na ten link, ale nic mi nie przychodzi do glowy.
Z tego co mysle to na wejscie podaje:

2 - tutaj liczba tego ilu liczb bedziemy liczyc silnie np
4 - 1 liczba
8 - druga

I z tym zrobilem juz blad ale dobra widze ze na spoju wiele zadan tego wymaga to z tym zaczne od nastepnego, ale co do reszty bledow w tym zadaniu to nie wiem co poradzic.

0

To może pytania pomocnicze:
Musisz obliczyć n! czy tylko wyświetlić 2 ostatnie cyfry?
Co charakteryzuje liczby n! dla n>9?

1 użytkowników online, w tym zalogowanych: 0, gości: 1