C趣味程序百例(20).減式還原

字號:

63.減式還原
     編寫程序求解下式中各字母所代表的數(shù)字,不同的字母代表不同的數(shù)字。
     PEAR
     - ARA
     --------
     PEA
    *問題分析與算法設(shè)計
     類似的問題從計算機算法的角度來說是比較簡單的,可以采用最常見的窮舉方法解決。程序中采用循環(huán)窮舉每個字母所可能代表的數(shù)字,然后將字母代表的數(shù)字轉(zhuǎn)換為相應(yīng)的整數(shù),代入算式后驗證算式是否成立即可解決問題。
    *程序與程序注釋
    #include
    void main()
    {
     int p,e,a,r;
     for(p=1;p<=9;p++) /*從1到9窮舉字母p的全部可能取值*/
     for(e=0;e<=9;e++) /*從0到窮舉字母e的全部可能取值*/
     if(p!=e) /*p不等于e*/
     for(a=1;a<=9;a++) /*從0到9窮舉字母a的全部可能取值*/
     if(a!=p&&a!=e)
     for(r=0;r<=9;r++) /*從0到9窮舉字母r的全部可能取值*/
     if(r!=p&&r!=e&&r!=a&&p*1000+e*100+a*10+r-(a*100+r*10+a)
     ==p*100+e*10+a)
     {
     printf(" PEAR %d%d%d%d\n",p,e,a,r);
     printf(" -ARA - %d%d%d\n",a,r,a);
     printf(".........................\n");
     printf(" PEA %d%d%d\n",p,e,a);
     }
    }
    *運行結(jié)果
     PEAR 1098
     - ARA - 989
     ---------- ------
     PEA 109