xsw2010 发表于 2015-11-7 18:15:19

请教编程高手:怎样写这个程序

要求:类似“拆东墙,补西墙”

写一个程序类似这样:有两个数例如如 A=6050, B=5000,不断拆分,结合。该如何设计?

5000------------------------
                     +         |
      |------1050-----------6050
5000
      |-----3950------------
                                     |
      |-----2100------------6050
5000
      |-----2900------------
                                     |
      |-----3150-----------6050
5000
      |-----1850------------
                                     |
      |-----4200----------6050
5000
      |-------800------------
                                    |
5000---------------------6050
                                    |
      |------250-------------
5000
      |-----4750-------------
                                    |
      |-----1300----------6050
                ........
               ......
                  ....
                   ..
   

zoologist 发表于 2015-11-8 13:54:36

不懂你要算什么吗?

顺子 发表于 2015-11-8 22:38:30

本帖最后由 顺子 于 2015-11-8 22:48 编辑

这个只是一个逻辑算法,自己慢慢研究一下。我自己摆弄了一下,希望对你有帮助
                float m1,m2,temp,m;
                u32 i,date,j;
                m1=5000;
                m2=6050;
                temp=1050;
                m=0;
                j=0;
                for(i=0;i<100;i++)
                {
                       
                        temp=m1-temp;
                        if(temp<0){temp=-temp;m=m1;m1=m2;m2=m;}
                        date=temp;
                        temp=m2-temp;
                        if(temp<0){temp=-temp;m=m1;m1=m2;m2=m;}
                        date=temp;
                }
结果我自己记录了一下,
1050
3950
2100
2900
3150
1850
4200
800
5250
250
4750
1300
3700
2350
2650
3400
1600
4450
550
5550
500
4500
1550
3450
2600
2400
3650
1350
4700
300
...................................

xsw2010 发表于 2015-11-16 20:20:21

本帖最后由 xsw2010 于 2015-11-16 20:32 编辑

顺子 发表于 2015-11-8 22:38 static/image/common/back.gif
这个只是一个逻辑算法,自己慢慢研究一下。我自己摆弄了一下,希望对你有帮助
                float m1,m ...

谢谢大侠,至少提供了很好的思路,我慢慢研究下,不知道再下去结果有没重复。:)
页: [1]
查看完整版本: 请教编程高手:怎样写这个程序