[存档!]纯数学、物理学、化学等:与贸易没有任何关系的大脑训练问题 - 页 235

 

不要把操作数和操作混淆起来!在我们的案例中。

d+=f[b]*a,f[b]=d%--g,d/=g--,--b

这四个都是运算,而不是操作数!

MetaDriver,我不认为除了一个条件,其他条件都必须放弃。不是那么简单,是Pi。而且,无论如何,你的复述让我感到厌烦......

顺便说一下,这里是第一个循环,可以用电子编译器检查,同时输出所有必要的调试信息。C-4 说这个循环只执行一次(为什么是一次?

 
Mathemat >>:

Дык операнд, а не операция!

来自Strausrup("The C++ Programming Language","Reference Manual "一章,第14节(Summary of Syntax))。

| выражение:

| терм

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

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

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

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

| выражение:

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


在蓝色部分,我强调了要看的东西。

 
Mathemat >>:

Дык не путай операнд и операцию! В нашем случае

все четыре - операции, а не операнды!

1) MetaDriver, не верю, что все условия окромя одного придецца отбросить. Не такое оно простое, это Pi. И вообще, запылил мне мозги своей рекурсией...

Кстати, вот самый первый цикл можно и проверить, у кого компилятор е, вместе с выводом нужной отладочной инфы. С-4 говорит, что цикл выполнится только 1 раз (а почему даже 1 раз-то выполнится?), а мне кажется, что много раз.

你必须这样做!

在网上查找一些关于逗号运算符的更多描述。让您完全满意(:浮动箭头:)。

 
Mathemat >>:

1) Кстати, вот самый первый цикл можно и проверить, у кого компилятор е, вместе с выводом нужной отладочной инфы.

2) С-4 говорит, что цикл выполнится только 1 раз (а почему даже 1 раз-то выполнится?), а мне кажется, что много раз.

那就好了。我有一些,但我不想为VS卸下内存。

(我有很多程序在运行,所有的内存都满了)。我还在为拉伸和天花板的网站工作呢:)

 

好吧,我们等到明天再说。我看一下逗号运算符。标准仍将是实践--直到浮动针。

 
Mathemat >>:

Ладно, погодим до завтра. Я посмотрю оператор запятой. Критерием все равно будет практика.

好吧,我们明天再做吧。:)

 
这里有一个链接:for循环条件中的逗号操作符
 

我忍不住要在工作室做一个项目。 经过下一步的改革(见下文),代码就可以工作了。
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;
}
接下来,我要去掉最后一个for'a,也用while来代替它。  
然后我们可以慢慢地处理这个算法,沿途用更有意义的标识符来替换。

 
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 main(int argc, char* argv[])
{

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


for(d=0;c>0;)
{
g=c*2-1
e=d%a
for(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
}

它成功了!!!
 

而什么,Pi出来了,是吗?