精品偷拍一区二区三区,亚洲精品永久 码,亚洲综合日韩精品欧美国产,亚洲国产日韩a在线亚洲

  • <center id="usuqs"></center>
  • 
    
  • 用123...9這九個數(shù)字組成三個三位數(shù),使第二個數(shù)是第一個數(shù)的兩倍,第三個是第一個數(shù)的3倍,用C++怎樣實現(xiàn)

    用123...9這九個數(shù)字組成三個三位數(shù),使第二個數(shù)是第一個數(shù)的兩倍,第三個是第一個數(shù)的3倍,用C++怎樣實現(xiàn)
    其他人氣:835 ℃時間:2019-10-20 19:43:02
    優(yōu)質(zhì)解答
    做出來了,不過我是用C寫的,你應(yīng)該可以改成C++的吧,主要還是思路,講解一下我的思路吧:


    如果用排列組合的話,工作量肯定很大,我們可以反過來想,假設(shè)有第一個數(shù),那么我們可以求出第二個數(shù)和第三個數(shù),然后計算這三個數(shù)中所有位上的數(shù)字的個數(shù),統(tǒng)計下,看是否從1-9都使用了一遍,如果是,那么這三個數(shù)就是要求的,否則接著找.


    第一個數(shù)怎么就有了呢,很簡單,既然是三位數(shù),我們從100開始循環(huán)就行了,直到999;不過仔細(xì)想想,其實不用循環(huán)到999,因為到333的時候,第三個數(shù)剛好是999,334的時候第三個數(shù)就不是三位數(shù)了.因此第一個數(shù)從100循環(huán)到333就可以了.
    #include <stdio.h>
    #include <math.h>
    #include <stdlib.h>

    int main()
    {
        int i, j, k, flag;
        int num1, num2, num3, n1, n2, n3;//分別表示第一個數(shù)、第二個數(shù)和第三個數(shù)
        int s[12];                       //記錄數(shù)字的個數(shù)

        //只需要循環(huán)333次就夠了,接著往下循環(huán)的話,第三個數(shù)就超過1000了
        for(i=100; i<=333; i++)
        {
            //將數(shù)組a的值全部置為0
            for(j=0; j<10; j++)
            {
                s[j] = 0;
            }
            flag = 1;

            n1 = num1 = i;
            n2 = num2 = i*2;
            n3 = num3 = i*3;

            //一下三個while循環(huán)是統(tǒng)計各個位上數(shù)字的個數(shù)
            while(num1)
            {
                k = num1%10;
                s[k]++;
                num1 /= 10;
            }
            while(num2)
            {
                k = num2%10;
                s[k]++;
                num2 /= 10;
            }
            while(num3)
            {
                k = num3%10;
                s[k]++;
                num3 /= 10;
            }

            //判斷1-9的使用情況,如果一個數(shù)使用多次或一次也沒使用,表示不符合要求
            for(j=1; j<10; j++)
            {
                if(s[j]>=2 || s[j]==0)
                {
                    flag = 0;
                    break;
                }
            }
            if(flag == 1)
            {
                printf("%-5d%-5d%-d\n", n1, n2, n3);
            }

        }

        return 0;
    }
    我來回答
    類似推薦
    請使用1024x768 IE6.0或更高版本瀏覽器瀏覽本站點,以保證最佳閱讀效果。本頁提供作業(yè)小助手,一起搜作業(yè)以及作業(yè)好幫手最新版!
    版權(quán)所有 CopyRight © 2012-2024 作業(yè)小助手 All Rights Reserved. 手機(jī)版