只用加法算的24的好象没几个组合啊,实际上应该是我所说的那样,用+、-、×、÷四种运算符算出24的。
希望各位高手要是会的话就做出来让菜鸟们都看看。(我也是菜,所以我也不会)
2.辅助法<2004.9.28> 我给它下的定义是:为了实现某一特定的问题.常常需要增加一些看似无用却又必须增加的量来进行辅助;以最终得到想要的结果值.这种方法,就称为"辅助法". 例如:打印下列有规律的分数序列. 2/1,3/2,5/3,8/5.....
分析:细心的网友可能发现了该数列有一个比较明显的规律.后一个数的分母是前一个数的分子,而后一个数的分子是前一个数的分子与分母之和.刚开始,我看到这个题目的时候,我想利用"子函数"的方式来实现.但后来用伪代码进行分析,发现其实不需要那么麻烦。只需要在其中设制一个“辅助”的变量就可以了。我用trubo C编制的源代码如下: #include<stdio.h> main() {int i=1,j=1,k,m=2,n; printf("您想看到几个:"); scanf("%d",&n); for(k=1;k<=n;k++) {printf("%d/%d",m,j); i=m; m=m+j; j=i;} 大家可以对这个源程序直观的分析一下,会看出变量"i"的值好像是多余的;但是如果去掉它却是万万不可。可以说这道题如果不用一个辅助变量就很难实现。 假设一下,如果我们把其变量的值不要,改为: ....... m=m+j; j=m; ....... 那么,很显然是不对的,虽然,我们的想法是第二个分数的分母等于第一个分数的分子加分母;但是第二句"j=m;".本来,我们想得到的值是前一个分子的值.但是,m的值这时已经被重新定义了.所以,这样做个是完全错误的.(未完待续三)
对于这一个问题我到谭老师的书上看过,当时我就没有按他想的这样设一个i , 我是这样做的,大家帮看看: #include<stdio.h> main() {int j=1,k,m=2,n; printf("您想看到几个:"); scanf("%d",&n); for(k=1;k<=n;k++) {printf("%d/%d",m,j); m=m+j; j=m-j; } } 我是这样想的,等号是从右向左算,程序是从上到下的,所以流程为: m=2 j=1 printf 2/1 m=m+j=2+1=3 j=m-j=3-1=2 printf 3/2 m=m+j=3+2=5 j=m-j=5-2=3 printf 5/3 ...... 所以我对这个朋友说的“会看出变量"i"的值好像是多余的;但是如果去掉它却是万万不可。可以说这道题如果不用一个辅助变量就很难实现。”这一句话有点不解。 只是这种方法是大大可行的,在好多地方也是挺方便的。 不过也许我说这样写的有点问题,我也没有到电脑上去试。还请哪位朋友帮我看一下,先谢了。 不好意思 ,没有看完贴子就发了,原来有人早就下手了。 呵呵。
[此贴子已经被作者于2005-2-3 11:56:42编辑过]