c语言题1--累加数

    技术2022-05-19  23

     

    /*

    对1~9排列,组成一个数。这个数满足

    1、前n位能被n整除,

    2、每一位是不等的,

    */

    #include<iostream> using namespace std; #define NUM 9 int a[NUM+1]; bool Isfill(int i) { long sum=0; for(int j=1;j<i;j++) { sum*=10; sum+=a[j]; if(sum%j!=0)return 0;//测试是否满足条件1 if(a[i]==a[j])return 0;//测试是否满足条件2 } return 1; } bool no_next(int m) { if(m==9)return 1; return 0; } void main() { int i=1; a[i]=1; int not_finshi=1; while(not_finshi) { if(Isfill(i)) { if(i==9)not_finshi=0; else { i++; a[i]=1;//每次都是从1开始算 } } else { while(no_next(a[i])) { a[i]==1; i--; } a[i]++; } } for(i=1;i<=9;i++) { cout<<a[i]<<"/t"; } }  

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     


    最新回复(0)