如题:ABCS为一个四位整数,这个整数乘以9,得到的数正好是它各各数位反过来。求A,B,C,S各是什么数?
    ABCS*9=SCBA老大们,不要编程穷举,说说它的算数算法。我笨笨,先穷举出来,才明白道理。#include <iostream.h>void main()
{
int a,b,c,s;
int num;
a=b=c=s=num=0;
int i;
for(i=1000;i<10000;i++)
{
a=int(i/1000);
b=int((i%1000)/100);
c=int((i%100)/10);
s=int(i%10);
num=(s*1000)+(c*100)+(b*10)+a;
if((i*9)==num)  cout<<"fun is:"<<i<<"*"<<"9"<<"="<<num<<endl;}}

解决方案 »

  1.   

    a=1, 不然结果必大于4位
    s=9,不然相乘结果未们不会是1
    c+8 = b
    b只能是1或者0,不然结果大于4位
    b=0, c=2
    b=1, c=3(排除)
    1029*9 = 9201
      

  2.   

    1 A*9不进位,那么A只能是1
    2 9*S%10=1,那么S只能是9
    3 同时9*C+8%10=B
    4 因为B*9不进位,那么B只能是0或1
    5 先按B=1分析,通过3可分析出C只能是7,配到整个表达式中不匹配,错误
    6 再按B=0分析,通过3可分析出C只能是8,代到表达式中计算,正确,结果是1089*9=9801
    分析时间:3分钟