silnia w czasie kompilacji

0

Jak zaimplementować liczenie n! w czasie kompliacji programu ?

Prosze o jakies wskazowki, wiem ze konieczne sa szablony, ale co i jak z tym zrobic ?

0

Skorzystać z Google? Na wiki masz nawet gotowy przykład z objaśnieniem. Studenci...

0

Intryguje mnie zwrot "w czasie kompilacji", czy to oznacza implementowanie tej funkcji do naszego programu, gdy ten się już kompiluje? ;-D

--
Opolski Portal Programistyczny
http://programowanie.opole.pl

0

nie spodziewalem sie ze mozna to tak latwo znalezc

jest tam sprytne wykorzystanie szablonow i rekurencji; instance szablonu sa wykonywane w trakcie kompilacji, a dzieki tym dwóm bajerom, dziala to w trakcie kompialcji :)

#include <iostream>
 
  template <int N>
  struct Silnia 
  {
     static const int wartosc = N * Silnia<N-1>::wartosc;
  };
 
  template <>             //specjalizacja kończy rekurencję
  struct Silnia<0> 
  {
      static const int wartosc = 1;
  };
 
  int main() 
  {
      const int s = Silnia<10>::wartosc;     //jest to równoważne: const int silnia4 = 24;
	
	  int k = Silnia<5>::wartosc;
      std::cout << s<<"   " << k;
      return 0;
  }

 
0

na IOCCC widziałem chyba szukanie liczb pierwszych preprocesorem

0

Intryguje mnie zwrot "w czasie kompilacji", czy to oznacza implementowanie tej funkcji do naszego programu, gdy ten się już kompiluje?
Nie. Wykonanie operacji przez kompilator w trakcie kompilacji. Wynikowy exek zawiera tylko gotowy wynik do wyświetlenia.

quote>na IOCCC widziałem chyba szukanie liczb pierwszych preprocesorem</quote>
Ktoś wykazał kompletność w sensie Turinga preprocesora C++, co oznacza możliwość obliczenia czegokolwiek.

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