演算法電話號碼對應英文單詞

dongyu2013發表於2014-04-19

點選(此處)摺疊或開啟

  1. char c[10][10]={
  2.   \"\",
  3.   \"\",
  4.   \"ABC\",
  5.   \"DEF\",
  6.   \"GHI\",
  7.   \"JKL\",
  8.   \"MNO\",
  9.   \"PQRS\",
  10.   \"TUV\",
  11.   \"WXYZ\"
  12. }

  13. int total[10]={ 0,0,3,3,3,3,3,4,3,4};
  14. const int TelLength=3;
  15. int number[TelLength];
  16. int answer[TelLength];
  17. //方法一
  18. while(true)
  19. {
  20.     for(i=0; i<TelLength; i++)
  21.         printf(\"%c\", c[number[i]][answer[i]]);
  22.     printf(\"\\n\");
  23.     int k=n-1;
  24.     while(k>=0)
  25.     {
  26.      if(answer[k]<total[number[k]]-1)
  27.      {
  28.          answer[k]++;
  29.          break;
  30.      }
  31.      else
  32.      {
  33.      answer[k]=0; k--;
  34.      }
  35.     }
  36.     if(k<0)
  37.         break;
  38. }
  39. //方法二
  40. void Recursion(int *number, int *answer, int index, int n)
  41. {
  42.      if(index==n)
  43.      {
  44.         for(int i=0; i<n; i++)
  45.         {
  46.             printf(\"%c\", c[number[i]][answer[i]]);
  47.         }
  48.         printf(\"\\n\");
  49.         return;
  50.      }
  51.      for( answer[index]=0; answer[index]<total[number[index]]; answer[index]++)
  52.      {
  53.          RecursiveSearch(number, answer, index+1, n);
  54.      }
  55. }

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29012686/viewspace-1145084/,如需轉載,請註明出處,否則將追究法律責任。

相關文章