JD_Source Code for problem 1379

题目链接:http://acm.jlu.edu.cn/joj/showproblem.php?pid=1379

解题心得:

1,基本的语法不要弄错,当时做的时候,memset用错了,错因是把第二个参数传为数组的大小,第三个参数传为要设的值了,实际应该是参数二为要设的值,参数三为数组大小,并且为整型数组赋值时第二个参数只有为0或-1时才能达到预期效果。

2,在用标准库中的集合和数组时,一定要考虑清楚什么时候该清空和什么时候该设为空,否则就出现怎么都改不对的错误,我就是困在这儿的!!!

3,用visit数组统计各位数字的个数自认为是个挺好的想法,可以看作是思想的进步

  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. char input [ 81 ];
  5. char result [ 15 ] [ 81 ];
  6. int visit [ 10 ];
  7.  
  8. void SetResult ( int i )
  9. {
  10. int j,k,len;
  11. memset (visit, 0, sizeof (visit ) );
  12. if (i == 0 )
  13. {
  14. len = strlen (input );
  15. for (j = 0;j < len;j++ )
  16. visit [input [j ] - '0' ]++;
  17. }
  18. else
  19. {
  20. len = strlen (result [i - 1 ] );
  21. for (j = 0;j < len;j++ )
  22. visit [result [i - 1 ] [j ] - '0' ]++;
  23. }
  24.  
  25. k = 0;
  26. for (j = 0;j < 10;j++ )
  27. {
  28. if (visit [j ] >= 10 )
  29. {
  30. int a = visit [j ] / 10;
  31. int b = visit [j ] % 10;
  32. result [i ] [k ] = a + '0';
  33. result [i ] [k + 1 ] = b + '0';
  34. result [i ] [k + 2 ] = j + '0';
  35. k += 3;
  36. }
  37. else if (visit [j ] > 0 )
  38. {
  39. result [i ] [k ] = visit [j ] + '0';
  40. result [i ] [k + 1 ] = j + '0';
  41. k += 2;
  42. }
  43. }
  44. }
  45.  
  46. bool Find ( int i,int& first )
  47. {
  48. if ( strcmp (result [i ],input ) == 0 )
  49. {
  50. first = -1;
  51. return true;
  52. }
  53.  
  54. int j;
  55. for (j = 0;j < i;j++ )
  56. {
  57. if ( strcmp (result [j ],result [i ] ) == 0 )
  58. {
  59. first = j;
  60. return true;
  61. }
  62. }
  63. return false;
  64. }
  65.  
  66. int main ( int argc, char* argv [ ] )
  67. {
  68. int b_num;
  69. while ( scanf ( "%d",&b_num ) != EOF )
  70. {
  71. while (b_num-- )
  72. {
  73. while ( scanf ( "%s",input ) && strcmp (input, "-1" ) != 0 )
  74. {
  75. int i;
  76. bool find = false;
  77. memset (result, 0, sizeof (result ));//每次处理一个字符串都应该将result设为空
  78. for (i = 0;i < 15;i++ )
  79. {
  80. SetResult (i );
  81. if (i == 0 )
  82. {
  83. if ( strcmp (result [i ],input ) == 0 )
  84. {
  85. printf ( "%s is self-inventorying/n",input );
  86. find = true;
  87. break;
  88. }
  89. }
  90. else
  91. {
  92. int first;
  93. if (Find (i,first ) )
  94. {
  95. if (first == i - 1 )
  96. printf ( "%s is self-inventorying after %d steps/n",input,i );
  97. else
  98. printf ( "%s enters an inventory loop of length %d/n",input,
  99. i - first );
  100. find = true;
  101. break;
  102. }
  103. }
  104. }
  105. if (!find )
  106. printf ( "%s can not be classified after 15 iterations/n",input );
  107. }
  108. printf ( "/n" );
  109. }
  110. }
  111. return 0;
  112. }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
先介绍一下这个平台: 虹晶於日前正式發表包含高速ARM11核心(CPU)與Mali 3D繪圖核心(GPU)的「Leopard 6單晶片設計平台」(Leopard 6 SoC Design Platform),此系統單晶片平台不但具備效能足與世界級大廠匹敵、高達1.20GHz的ARM1176JZF CPU核心,同時還有目前業界最高速的400MHz 3D Mali繪圖核心,DDR2記憶體以及資料串流的匯流排AXI Bus Matrix也分別有高達400MHz高速表現,且提供完整的無線與連接功能,包含3.5G、WiFi、Bluetooth、GPS等最熱門需求。 「Leopard 6單晶片設計平台」已於特許65奈米製程通過矽驗證(Silicon proven),並且已提供開發板MDK-3D(3D Multimedia Development Kit)作為產品開發、驗證、教育之用,並將於大中華區ARM技術論壇與IC-CAD China展出晶片與開發板。 虹晶此一單晶片「Leopard 6單晶片設計平台」,不僅高效能表現超越許多世界級大廠的同等級產品,領先業界整合高速ARM Mali-200 GPU提供3D繪圖功能與支援OpenGL ES 2.0繪圖程式化界面(API),並能將連接、儲存、分享、娛樂等功能全部整合至單一顆晶片上,將系統單晶片(System on Chip;SoC)的精神發揮至極致。 當前消費電子產品所需的螢幕觸控功能、3D使用者介面、3D遊戲、多媒體娛樂、無線上網(3.5G 與WiFi)、GPS、資料分享(Bluetooth)、照相、儲存等等,「Leopard 6」皆已經整合或支援,多種周邊功能整合至單一晶片上,不但可使產品系統設計更為精簡,開發產品的系統公司在縮減終端產品設計體積的同時也能因「Leopard 6」相當齊備的功能而節省成本,已通過矽驗證的「Leopard 6」並已導入虹晶先期整合的Android作業系統,讓客戶從晶片設計、量產、驗證開發、導入軟體等獲得最完整的服務,大幅縮短50%的新產品開發上市時程,協助客戶取得市場領先優勢。 虹晶自即日起提供「Leopard 6單晶片設計平台」晶片設計、MDK-3D開發板等相關服務,並將自11月19日起,分別於新竹、上海、北京、深圳所舉辦的ARM年度技術論壇以及12月初於廈門舉辦的IC-CAD China 2009當中發表展出,在展出此最新、高效能、且具備3D繪圖核心之「Leopard 6」的同時,亦將在其中兩場論壇中發表演說,分享虹晶的開發經驗並介紹此一平台令人驚喜的技術進展。 文件包含所有样例代码! 希望对你有用! Design , Matrix , 平台 , 资料
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值