[Arşiv] Ticaretle ilgisi olmayan saf matematik, fizik, kimya vb. beyin jimnastiği bulmacaları - sayfa 235

 
Mathemat >> :

Yani işlenen, işlem değil!

Stroustrap'tan ("C++ Programlama Dili", bölüm "Başvuru Kılavuzu", bölüm 14 (Sözdizimi Özeti)):

| выражение :

| терм

| выражение бинарная_операция выражение

| выражение ? выражение : выражение

| список выражений

| список выражений:

| выражение:

| список_выражений, выражение


Mavi, neye bakılacağını vurguladı.

 
Mathemat >> :

Bu yüzden işlenen ve işlemi karıştırmayın! bizim durumumuzda

dördü de işlemdir, işlenen değil!

1) MetaDriver , biri dışındaki tüm koşulların atılmasının isteneceğine inanmıyorum. O kadar basit değil, bu bir Pi. Ve genel olarak, özyinelemesiyle beynimin tozunu aldı ...

Bu arada, işte ilk döngü ve gerekli hata ayıklama bilgilerinin çıktısıyla birlikte e derleyicisinin kimde olduğunu kontrol edebilirsiniz. C-4 , döngünün yalnızca 1 kez yürütüleceğini söylüyor (ve neden 1 kez yürütülecek?), Ama bana öyle geliyor ki birçok kez.

Böyle bir gelen!

İnternetteki virgül operatörünün bazı açıklamalarına bakın. Tam tatmin olana kadar (:kayan ok :).

 
Mathemat >> :

1) Bu arada, işte ilk döngü ve gerekli hata ayıklama bilgilerinin çıktısıyla birlikte e derleyicisinin kimde olduğunu kontrol edebilirsiniz.

2) C-4 , döngünün yalnızca 1 kez yürütüleceğini söylüyor (ve neden 1 kez yürütülecek?), Ama bana öyle geliyor ki birçok kez.

İyidir. Bir vapcheta'm var, ancak şu anda VS altında belleği boşaltmak konusunda çok isteksiz.

(Çalışan bir sürü programım var, tüm hafıza dolu. Hala gergi tavan sitesiyle uğraşıyorum :)

 

Tamam, yarına kadar bekleyelim. Virgül operatörüne bakacağım. Kriter hala pratik olacak - yüzen iğneye kadar.

 
Mathemat >> :

Tamam, yarına kadar bekleyelim. Virgül operatörüne bakacağım. Kriter yine pratik olacaktır.

Tamam, yarın gidelim. :)

 
İşte şimdilik bir bağlantı: for döngüsü koşulundaki virgül operatörü
 

Dayanamadı, aynı projeyi stüdyoda yaptı. Aşağıdaki reformdan sonra (aşağıya bakın), kod çalışır:
 int a = 10000 , b , c = 2800 , d , e , f [ 2801 ] , g ;

int _tmain ( int argc , _TCHAR * argv [ ] ) // Вполне заменяет классический main()
{
   while ( ( b - c ) ! = 0 )   
   {
     f [ b + + ] = a / 5 ;
   }
   while ( g = c * 2 )
   {
       for ( b = c ; d + = f [ b ] * a , f [ b ] = d % - - g , d / = g - - , - - b ; d * = b ) ;
      
      c - = 14 ;
       printf ( "%.4d" , e + d / a ) ;
      e = d % a ;
  
      d = 0 ;
   }
   getch ( ) ; // Добавил, чтоб тормозить окно от преждевременного захлопывания.
return 0 ;
}
Sonra, son for'a'dan kurtulacağım, onu while ile değiştireceğim.
Ardından, tanımlayıcıları yol boyunca daha anlamlı olanlarla değiştirerek algoritmayla yavaş yavaş başa çıkmak mümkün olacaktır.

 
C-4 >> :

int a=10000,b,c=2800,d,e,f[2801],g;
int main(void){
for(;b-c;)f[b++]=a/5;
for(;d=0,g=c*2;c-=14,printf("%.4d",e+d/a),e=d%a)
for(b=c;d+=f[b]*a,f[b]=d%--g,d/=g--,--b;d*=b);
}

int a = 10000 , c = 2800 , b , d , e , g ;
int f [ 2801 ] ;

int ana ( int argc , karakter * argv [ ] )
{

için ( ; ( b - c ) ! = 0 ; b + + )
{
f [ b ] = a / 5 ;
}


( d = 0 ; c > 0 ; ) için
{
g = c * 2 - 1 ;
e = d % a ;
için ( b = c ; b > 0 ; )
{
d = d * b ;
d = d + f [ b ] * a ;
f [ b ] = d % g ;
d = d / g ;
g = g - 2 ;
b - - ;
}

printf ( "%.4d" , e + d / a ) ;
c = c - 14 ;
}
0 döndür ;
}

kazanıldı!!!
 

Ve ne, Pi çıkıyor, ya da ne?

 

Orjinalinin aynısı çıkıyor. Ama daha açık (?)

Algoritmaya kalmış. Sonra bonus olarak matematiksel formüller)