震惊!c语言学了一辈子都不知道的小技巧。第五章。
标题党,我这算不上小技巧就是一点感想。
一般循环再往后深入就是多重循环。在多重循环中,有一类输出多边形的题目,大多只要将i看为行,将j看为列,就可以解决。还包括类似打印乘法表,也可以解决。特殊的就是,利用循环来解方程。如:
百钱买百鸡问题:公鸡五文钱一只,母鸡三文钱一只,小鸡三只一文钱,用 100 文钱买 100 只鸡,公鸡、母鸡、小鸡各买多少只?
本程序要求解的问题是:给定一个正整数 n,用 n 文钱买 n 只鸡,问公鸡、母鸡、小鸡各买多少只?
for(i=0;i<=n;i++)
for(j=0;j<=n;j++)
{
if(i+j+(n-5*i-3*j)*3==n)
{f=1;a=i;b=j;c=(n-5*i-3*j)*3;
cout<<a<<" "<<b<<" "<<c<<endl;
}
}
以人类视角来看就是枚举法,一个个是试答案,将符合的答案记录,这是很神奇的。