1. 程式人生 > >習題2-6 排列 解題報告

習題2-6 排列 解題報告

題目:
這裡寫圖片描述

程式碼:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
    int abc,def,ghi;
    int a[10],i,count;
    memset(a,0,sizeof(a));
    for(abc = 123 ;abc <=329;abc++)
    {
        memset(a,0,sizeof(a));
        count = 0;

        def = abc*2;
        ghi = abc*3
; a[abc/100] = a[abc/10%10] = a[abc % 10] = 1; a[def/100] = a[def/10%10] = a[def % 10] = 1; a[ghi/100] = a[ghi/10%10] = a[ghi % 10] = 1; for(i=1;i<10;i++) { count += a[i]; } if(count == 9) { printf("%d %d %d\n",abc,def,ghi); } } return
0; }

解析:
1、將所有可能出現的數字作為一個一維陣列的下標,最後判斷之和是否為9,如果小於9,必有重合,反之每個數字只有一個。
2、陣列和count要清零。