请问这题该怎么做?不能用数组和函数。

img

#include <iostream>
using namespace  std;

int main()
{
    int c= 0;
    for (int i1 = 1; i1<= 9 ;i1++) {
        for (int j1 = 1; j1<=9 ;j1++) {
            for (int k1 = 1; k1<=9 ;k1++) {
                if(i1 == j1 || i1 == k1 || k1 == j1) continue;
                for (int i2 = 1; i2<=9 ;i2++) {
                    for (int j2 = 1; j2<=9 ;j2++) {
                        for (int k2 = 1; k2<=9 ;k2++) {
                            if(i2 == j2 || i2 == k2 || k2 == j2) continue;
                            if(i1 == i2 || i1 == j2 || i1 == k2)  continue;
                            if(j1 == i2 || j1 == j2 || j1 == k2)  continue;
                            if(k1 == i2 || k1 == j2 || k1 == k2)  continue;
                            for (int i3 = 1; i3<=9 ;i3++) {
                                for (int j3 = 1; j3<=9 ;j3++) {
                                    for (int k3 = 1; k3<=9 ;k3++) {
                                        if(i3 == j3 || i3 == k3 || k3 == j3) continue;
                                        if(i1 == i3 || i1 == j3 || i1 == k3)  continue;
                                        if(j1 == i3 || j1 == j3 || j1 == k3)  continue;
                                        if(k1 == i3 || k1 == j3 || k1 == k3)  continue;
                                        if(i2 == i3 || i2 == j3 || i2 == k3)  continue;
                                        if(j2 == i3 || j2 == j3 || j2 == k3)  continue;
                                        if(k2 == i3 || k2 == j3 || k2 == k3)  continue;
                                         int num1 = i1*100 + j1*10 +k1;
                                         int num2 = i2*100 + j2*10 +k2;
                                         int num3 = i3*100 + j3*10 +k3;

                                         if(num1 >= num2) continue;
                                         if(num2 >= num3) continue;

                                         if(num1 + num2 + num3 == 1953){
                                             cout <<"NO. \t"<<num1<<"+"<<num2<<"+"<<num3<<endl;
                                             c++;
                                         }
                                    }
                                }
                            }


                        }
                    }
                }
            }
        }
    }
    cout <<"total="<<c;
    return 0;
}

运行结果如下:

img

运行结果:

img

代码如下:

#include <iostream>
using namespace std;
int main()
{
    int n = 1953;
    int i,j,k,up=0;
    int i2,j2,k2,up2=0;
    int i3,j3,k3;
    int count = 0;
    
    for (i=1;i<=9;i++)
    {
        for(j=i+1;j<=9;j++)
        {
            for(k=j+1;k<=9;k++)
            {
                if(i==j) continue;
                if(i==k) continue;
                if(j==k) continue;
                if((i+j+k)%10 != 3) continue;
                
                up = (i+j+k)/10;
                //cout << i << " " << j << " " << k<< " ="<< (i+j+k)<<endl;
                
                //第二个数
                for (i2=1;i2<=9;i2++)
                {
                    for(j2=1;j2<=9;j2++)
                    {
                        for(k2=1;k2<=9;k2++)
                        {
                            if(i2 == i || i2==j || i2 == k ) continue;
                            if(j2 == i || j2==j || j2 == k ) continue;
                            if(k2 == i || k2==j || k2 == k ) continue;
                            if(i2 == j2 || i2 == k2 || j2==k2) continue;
                            if( (i2+j2+k2)%10 != (5-up) ) continue;
        
                            up2 = (i2+j2+k2)/10;

                            for(i3=1;i3<=9;i3++)
                            {
                                for(j3=1;j3<=9;j3++)
                                {
                                    k3 = 45 - i-j-k - i2-j2-k2-i3-j3;
                                    if(k3>9 || k3<=0) continue;
                                    
                                    if(i3 == i || i3 ==j || i3==k)continue;
                                    if(j3 == i || j3 ==j || j3==j)continue;
                                    if(k3 == i || k3 ==k || k3 ==j)continue;

                                    if(i3 == i2 || i3 ==j2 || i3==k2)continue;
                                    if(j3 == i2 || j3 ==j2 || j3==j2)continue;
                                    if(k3 == i2 || k3 ==k2 || k3 ==j2)continue;

                                    if(i3 == k3 || i3==j3 || k3==j3) continue;
                                    
                                    if(i3+j3+k3+up2 == 19)
                                    {
                                        count++;
                                        cout <<"NO. " << count<< "  " << i3*100+i2*10+i << "+" << j3*100+j2*10+j << "+" << k3*100+k2*10+k << "=1953"<<endl;
                                    }
                                    
                                }
                            }
                            
                        }
                    }
                }
        
            }
        }
    }


    return 0;
}

img