next_permutation的小应用...

作者在 2008-10-01 12:58:27 发布以下内容
/*
有一道很小学的题目,问题如下:
  A B
  C D
  E F
+ G H
  ------
I I I
上述加法式子中A~I分别分0~9,你知道它们分别为多少吗?
关于这个题目稍作尝试就能得出一堆答案,一般常与计算机打交道的人都想把这种繁琐的事情交给计算机去做,
下面是我的程序,不知道有没有更好的方法,大家可以来交流一下啊...
*/
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
 int a,b,c,d,e,f,g,h,i;
 int sum=0;
 int A[10]={0,1,2,3,4,5,6,7,8,9};
 do
 {
  a=A[0];
  b=A[1];
  c=A[2];
  d=A[3];
  e=A[4];
  f=A[5];
  g=A[6];
  h=A[7];
  i=A[8];
  if((a+c+e+g)*10+b+d+f+h==i*100+i*10+i && a*c*e*g!=0)
  {
   cout<<a<<"  "
   <<b<<"  "
   <<c<<"  "
   <<d<<"  "
   <<e<<"  "
   <<f<<"  "
   <<g<<"  "
   <<h<<"  "
   <<i<<"  "<<endl;
   sum++;
  }
 }while(next_permutation(A,A+10));
 cout<<"所有的可能为:"<<sum<<endl;
 return 0;
}
 
技术分享 | 阅读 1952 次
文章评论,共0条
游客请输入验证码