今天來分享一道有意思的數學題目,題目來自知乎的一個提問,具體題目是這樣的:
有多少個含有不同數字的五位數abcde使得a>b>c>d>e?
乍一看這是一道高中數學題目,所用的知識無非就是排列組合的知識,下面我們來看如何用高中數學的方法來解決這個問題。
首先,注意題目中的一點是含有不同數字的五位數,其實a>b>c>d>e已經确保了各個數位上的數字都不相同。那麼每個數位上的數字應該如何取呢?
首先,最高位上的數字a最小為4,最大為9,因此我們可以确定滿足要求的最大和最小的五位數分别是43210和98765。那麼如何計算一共 有多少個滿足要求的五位數呢,讓我們來按照首位數字的大小來一一分析:
解題過程
以上,我們利用高中的排列組合知識解決了這道題目。但是我們隻能夠計算出有多少個滿足要求的五位數,至于這些數字都有哪些,寫起來估計挺費勁的。下面我們利用C語言編程解決這一問題。程序代碼如下:
#include<stdio.h>
int Five(int n)
{
int i,j,n1=n;
while(n>0)
{
i=n;//後一位
n=n/10;
j=n;//前一位
if(j<=i)break;
}
if(n>0)return 0;
else return n1;
}
int main()
{
int n,count=0;
printf("滿足要求的五位數如下:\n");
for(n=43210;n<=98765;n )
{
if(Five(n)>0)
{
printf("%d\n",n);
count ;
}
}
printf("共有 %d 個滿足要求的五位數\n",count);
return 0;
}
這裡我們主要編寫了一個判斷一個五位數是否是滿足題目要求的五位數的函數Five,其輸入量是一個五位數,如果一個五位數是滿足要求的五位數,Five函數就輸出這個數,如果這個輸入的五位數不滿足題目的要求,Five函數就輸出零。接下來我們隻需要在43210和98765這個區間循環執行Five函數,就可以輸出所有滿足要求的五位數了。
程序運行結果如下:
程序運行結果
好了,今天和大家分享的數學題目就到這裡了 ,關注我,有關于高中、初中、小學的數學題不會的可以給我留言,我會在第一時間更新解答。感謝大家的關注與支持。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!