編寫程序求解下式中各字母所代表的數字,不同的字母代表不同的數字。
PEAR
- ARA
--------
PEA
*問題分析與算法設計
類似的問題從計算機算法的角度來說是比較簡單的,可以采用最常見的窮舉方法解決。程序中采用循環窮舉每個字母所可能代表的數字,然後將字母代表的數字轉換為相應的整數,代入算式後驗證算式是否成立即可解決問題。
*程序說明與注釋
#include
int 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);
}
}
*運行結果
PEAR 1098
- ARA - 989
---------- ------
PEA 109
*