亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
樓主: loveguohuasai
打印 上一主題 下一主題

[算法] 母牛數(shù)量算法 [復(fù)制鏈接]

論壇徽章:
0
191 [報(bào)告]
發(fā)表于 2006-06-20 17:05 |只看該作者
強(qiáng)阿
好算法

論壇徽章:
0
192 [報(bào)告]
發(fā)表于 2006-06-23 07:58 |只看該作者
年數(shù)N

2的(N/4)次方

每次生3頭母牛的,就是3的(N/4)次方。

論壇徽章:
0
193 [報(bào)告]
發(fā)表于 2006-06-23 08:00 |只看該作者
只有在N/4=整數(shù)的時(shí)候母牛才會(huì)生小牛,題目沒有給出母牛早產(chǎn)或難產(chǎn)

論壇徽章:
0
194 [報(bào)告]
發(fā)表于 2006-06-24 21:35 |只看該作者

偶的算法: 是個(gè)等比是列吧 我覺得

用數(shù)學(xué)等比數(shù)列算,我的答案year=100,cow=33554432
#include<iostream.h>
int js(int);
int main()
{int cow,year;
cout<<"Input  year:";
cin>>year;
if (year>3&&year<12
{year=year-year%4;   //4年生一次,超過4年N倍按4年N倍算
cow=js(year);
cout<<"cow="<<cow;
return 0;
}
else if(year<1)
        cout<<"input is wrong";
else if(year<4&&year>0)
        cout<<"cow is:1";
else cout<<"input year is too big";
}
int js(int n)   //計(jì)算生的牛
{int i,b,c;
b=(n/4)+1;
c=1;   
/*這是等比數(shù)列吧,1,2,4,8…………用公式a(n)=a(0)*q的(n-1)次方  q:公比 ,a(0):首項(xiàng)  */
for(i=1;i<b;++i) //算q的N-1次方
    { c=2*c;
      }
return c;
}

[ 本帖最后由 czx1124 于 2006-6-24 21:41 編輯 ]

論壇徽章:
0
195 [報(bào)告]
發(fā)表于 2006-06-30 12:29 |只看該作者
原帖由 czx1124 于 2006-6-24 21:35 發(fā)表
用數(shù)學(xué)等比數(shù)列算,我的答案year=100,cow=33554432
#include<iostream.h>
int js(int);
int main()
{int cow,year;
cout<<"Input  year:";
cin>>year;
if (year>3&&am ...



我用計(jì)算器計(jì)算的結(jié)果也是33554432,不會(huì)寫程序啊,HOHO~

論壇徽章:
8
白羊座
日期:2015-01-21 18:35:03巳蛇
日期:2015-02-03 17:30:37處女座
日期:2015-02-03 17:31:02羊年新春福章
日期:2015-02-03 17:31:21巨蟹座
日期:2015-02-05 16:01:06申猴
日期:2015-02-05 16:01:31摩羯座
日期:2015-02-05 16:01:41酉雞
日期:2015-02-05 16:02:37
196 [報(bào)告]
發(fā)表于 2006-07-05 15:50 |只看該作者
不需要那么麻煩吧,就是一個(gè)簡(jiǎn)單的命題:
每4年,母牛數(shù)量翻番,計(jì)算n年后有多少母牛。


  1. // 就是計(jì)算 2^(n/4)
復(fù)制代碼

論壇徽章:
0
197 [報(bào)告]
發(fā)表于 2006-08-19 22:35 |只看該作者

非遞歸算法

int _calc(n)
{
        int a[4]={1,0,0,0};
        int i,sum=0,tmp;
        for(i=1; i<n; i++){
                a[3]=a[2]+a[3];
                tmp=a[0];
                a[0]=a[3];
                a[2]=a[1];
                a[1]=tmp;
               
        }
        sum=a[0]+a[1]+a[2]+a[3];
        return sum;
}

int main()
{
        int n=30;
        printf("%d\n",_calc(n));
        return 0;
}

論壇徽章:
0
198 [報(bào)告]
發(fā)表于 2006-09-07 15:32 |只看該作者
貼一個(gè)我的答案阿:
呵呵!應(yīng)該比較節(jié)省資源哦!
我沒有用遞歸的方法,我是針對(duì)這組數(shù)據(jù)的特點(diǎn)進(jìn)行計(jì)算的。
#include<stdio.h>
   int fun(int n)
       {
         int i,sum,tmp;     / sum 最后的結(jié)果 , i , tmp  中間量
         sum=n-3;           /  第一只牛第四年才可以每年生小牛
         tmp=0;         
         if(n<=3)             / 如果計(jì)算的年限小于等于3年
            sum+=0;
         else                   / 計(jì)算的年限大于3年
         {
         for(i=1;i<=sum-3;i++)       /所有的奶牛都要第四年生小牛, 所以sum-3 。
                                 /不同年頭出生的牛,他們依次生出的牛的數(shù)目遞減 如10年,4 ,3 , 2 , 1
            {
               tmp+=i;
             }
          }
         sum+=tmp;                     /計(jì)算最后的總結(jié)果
         return sum;

       }

   int main()
       {
          int n;
          printf("Please Input the n:\n");    / 提示輸入計(jì)算的年數(shù)
          scanf("%d",&n);
          printf("The Result Is :%d\n",fun(n));

        }
是不是資源消耗很小阿!

論壇徽章:
0
199 [報(bào)告]
發(fā)表于 2006-09-07 16:31 |只看該作者
o的遞歸的,估計(jì)用ULONG,也會(huì)溢出。


  1. typedef unsigned long ULONG;

  2. ULONG get_cow_num(int year);
  3. ULONG f(int year);

  4. void main()
  5. {
  6.         cout << get_cow_num(100) << endl;
  7. }

  8. ULONG get_cow_num(int year)
  9. {
  10.         ULONG sum = 0;
  11.         for( int i = 1; i <= year; ++i )
  12.                 sum += f(i);

  13.         return sum;
  14. }

  15. ULONG f(int year)
  16. {
  17.         ULONG ret = 0;

  18.         switch(year)
  19.         {
  20.         case 1:
  21.                 ret = 1;
  22.                 break;
  23.         case 2:
  24.         case 3:
  25.                                 ret = 0;
  26.                                 break;
  27.         case 4:
  28.                 ret = 1;
  29.                 break;
  30.         default:
  31.                 for( int k = 1; k <= year - 4; ++k )
  32.                 {
  33.                         ret += f(k);
  34.                 }
  35.         }

  36.         return ret;
  37. }
復(fù)制代碼

[ 本帖最后由 dzbjet 于 2006-9-7 16:35 編輯 ]

論壇徽章:
0
200 [報(bào)告]
發(fā)表于 2006-09-07 16:49 |只看該作者
改善后的:用了一個(gè)全局?jǐn)?shù)組,存儲(chǔ)計(jì)算過的f[year],消除遞歸。
不知道對(duì)不對(duì),大家指正:


  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4. #include <functional>
  5. #include <string>
  6. #include <iterator>
  7. #include <map>
  8. #include <vector>

  9. #include <time.h>

  10. using namespace std;

  11. typedef double ULONG;

  12. ULONG get_cow_num(int year);
  13. ULONG f(int year);

  14. ULONG ff[101] = { 0 };

  15. void main()
  16. {
  17.         memset(ff, 0, sizeof(ff));
  18.        
  19.         printf("%.f\n", get_cow_num(100));// << endl;

  20. }

  21. ULONG get_cow_num(int year)
  22. {
  23.         ULONG sum = 0;
  24.         for( int i = 1; i <= year; ++i )
  25.         {
  26.                 ULONG temp = f(i);
  27.                 sum += temp;
  28.                 printf("f(%d) = %.f, finished!   sum[%d] = %.f\n", i, temp, i, sum);
  29.         }

  30.         return sum;
  31. }

  32. ULONG f(int year)
  33. {
  34.         if( ff[year] ) return ff[year];

  35.         ULONG ret = 0;

  36.         ULONG temp = 0;

  37.         switch(year)
  38.         {
  39.         case 1:
  40.                 ret = 1;
  41.                 break;
  42.         case 2:
  43.         case 3:
  44.                 ret = 0;
  45.                 break;
  46.         case 4:
  47.                 ret = 1;
  48.                 break;
  49.         default:
  50.                 for( int k = 1; k <= year - 3; ++k )
  51.                 {
  52.                         // ret += f(k), 不需要了
  53.                         ret += ff[k];
  54.                 }
  55.         }

  56.         ff[year] = ret;

  57.         return ret;
  58. }
復(fù)制代碼

輸出:

  1. f(1) = 1, finished!   sum[1] = 1
  2. f(2) = 0, finished!   sum[2] = 1
  3. f(3) = 0, finished!   sum[3] = 1
  4. f(4) = 1, finished!   sum[4] = 2
  5. f(5) = 1, finished!   sum[5] = 3
  6. f(6) = 1, finished!   sum[6] = 4
  7. f(7) = 2, finished!   sum[7] = 6
  8. f(8) = 3, finished!   sum[8] = 9
  9. f(9) = 4, finished!   sum[9] = 13
  10. f(10) = 6, finished!   sum[10] = 19
  11. f(11) = 9, finished!   sum[11] = 28
  12. f(12) = 13, finished!   sum[12] = 41
  13. f(13) = 19, finished!   sum[13] = 60
  14. f(14) = 28, finished!   sum[14] = 88
  15. f(15) = 41, finished!   sum[15] = 129
  16. f(16) = 60, finished!   sum[16] = 189
  17. f(17) = 88, finished!   sum[17] = 277
  18. f(18) = 129, finished!   sum[18] = 406
  19. f(19) = 189, finished!   sum[19] = 595
  20. f(20) = 277, finished!   sum[20] = 872
  21. f(21) = 406, finished!   sum[21] = 1278
  22. f(22) = 595, finished!   sum[22] = 1873
  23. f(23) = 872, finished!   sum[23] = 2745
  24. f(24) = 1278, finished!   sum[24] = 4023
  25. f(25) = 1873, finished!   sum[25] = 5896
  26. f(26) = 2745, finished!   sum[26] = 8641
  27. f(27) = 4023, finished!   sum[27] = 12664
  28. f(28) = 5896, finished!   sum[28] = 18560
  29. f(29) = 8641, finished!   sum[29] = 27201
  30. f(30) = 12664, finished!   sum[30] = 39865
  31. f(31) = 18560, finished!   sum[31] = 58425
  32. f(32) = 27201, finished!   sum[32] = 85626
  33. f(33) = 39865, finished!   sum[33] = 125491
  34. f(34) = 58425, finished!   sum[34] = 183916
  35. f(35) = 85626, finished!   sum[35] = 269542
  36. f(36) = 125491, finished!   sum[36] = 395033
  37. f(37) = 183916, finished!   sum[37] = 578949
  38. f(38) = 269542, finished!   sum[38] = 848491
  39. f(39) = 395033, finished!   sum[39] = 1243524
  40. f(40) = 578949, finished!   sum[40] = 1822473
  41. f(41) = 848491, finished!   sum[41] = 2670964
  42. f(42) = 1243524, finished!   sum[42] = 3914488
  43. f(43) = 1822473, finished!   sum[43] = 5736961
  44. f(44) = 2670964, finished!   sum[44] = 8407925
  45. f(45) = 3914488, finished!   sum[45] = 12322413
  46. f(46) = 5736961, finished!   sum[46] = 18059374
  47. f(47) = 8407925, finished!   sum[47] = 26467299
  48. f(48) = 12322413, finished!   sum[48] = 38789712
  49. f(49) = 18059374, finished!   sum[49] = 56849086
  50. f(50) = 26467299, finished!   sum[50] = 83316385
  51. f(51) = 38789712, finished!   sum[51] = 122106097
  52. f(52) = 56849086, finished!   sum[52] = 178955183
  53. f(53) = 83316385, finished!   sum[53] = 262271568
  54. f(54) = 122106097, finished!   sum[54] = 384377665
  55. f(55) = 178955183, finished!   sum[55] = 563332848
  56. f(56) = 262271568, finished!   sum[56] = 825604416
  57. f(57) = 384377665, finished!   sum[57] = 1209982081
  58. f(58) = 563332848, finished!   sum[58] = 1773314929
  59. f(59) = 825604416, finished!   sum[59] = 2598919345
  60. f(60) = 1209982081, finished!   sum[60] = 3808901426
  61. f(61) = 1773314929, finished!   sum[61] = 5582216355
  62. f(62) = 2598919345, finished!   sum[62] = 8181135700
  63. f(63) = 3808901426, finished!   sum[63] = 11990037126
  64. f(64) = 5582216355, finished!   sum[64] = 17572253481
  65. f(65) = 8181135700, finished!   sum[65] = 25753389181
  66. f(66) = 11990037126, finished!   sum[66] = 37743426307
  67. f(67) = 17572253481, finished!   sum[67] = 55315679788
  68. f(68) = 25753389181, finished!   sum[68] = 81069068969
  69. f(69) = 37743426307, finished!   sum[69] = 118812495276
  70. f(70) = 55315679788, finished!   sum[70] = 174128175064
  71. f(71) = 81069068969, finished!   sum[71] = 255197244033
  72. f(72) = 118812495276, finished!   sum[72] = 374009739309
  73. f(73) = 174128175064, finished!   sum[73] = 548137914373
  74. f(74) = 255197244033, finished!   sum[74] = 803335158406
  75. f(75) = 374009739309, finished!   sum[75] = 1177344897715
  76. f(76) = 548137914373, finished!   sum[76] = 1725482812088
  77. f(77) = 803335158406, finished!   sum[77] = 2528817970494
  78. f(78) = 1177344897715, finished!   sum[78] = 3706162868209
  79. f(79) = 1725482812088, finished!   sum[79] = 5431645680297
  80. f(80) = 2528817970494, finished!   sum[80] = 7960463650791
  81. f(81) = 3706162868209, finished!   sum[81] = 11666626519000
  82. f(82) = 5431645680297, finished!   sum[82] = 17098272199297
  83. f(83) = 7960463650791, finished!   sum[83] = 25058735850088
  84. f(84) = 11666626519000, finished!   sum[84] = 36725362369088
  85. f(85) = 17098272199297, finished!   sum[85] = 53823634568385
  86. f(86) = 25058735850088, finished!   sum[86] = 78882370418473
  87. f(87) = 36725362369088, finished!   sum[87] = 115607732787561
  88. f(88) = 53823634568385, finished!   sum[88] = 169431367355946
  89. f(89) = 78882370418473, finished!   sum[89] = 248313737774419
  90. f(90) = 115607732787561, finished!   sum[90] = 363921470561980
  91. f(91) = 169431367355946, finished!   sum[91] = 533352837917926
  92. f(92) = 248313737774419, finished!   sum[92] = 781666575692345
  93. f(93) = 363921470561980, finished!   sum[93] = 1145588046254325
  94. f(94) = 533352837917926, finished!   sum[94] = 1678940884172251
  95. f(95) = 781666575692345, finished!   sum[95] = 2460607459864596
  96. f(96) = 1145588046254325, finished!   sum[96] = 3606195506118921
  97. f(97) = 1678940884172251, finished!   sum[97] = 5285136390291172
  98. f(98) = 2460607459864596, finished!   sum[98] = 7745743850155768
  99. f(99) = 3606195506118921, finished!   sum[99] = 11351939356274688
  100. f(100) = 5285136390291172, finished!   sum[100] = 16637075746565860
  101. 16637075746565860
  102. Press any key to continue
復(fù)制代碼

[ 本帖最后由 dzbjet 于 2006-9-7 17:16 編輯 ]
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP