第三十五、三十六課:函數(shù)練習(xí),遞歸函數(shù)

1405:質(zhì)數(shù)的和與積

【題目描述】
兩個(gè)質(zhì)數(shù)的和是S,它們的積最大是多少?
【輸入】
一個(gè)不大于10000的正整數(shù)S,為兩個(gè)質(zhì)數(shù)的和。
【輸出】
一個(gè)整數(shù),為兩個(gè)質(zhì)數(shù)的最大乘積。數(shù)據(jù)保證有解。
【輸入樣例】
50
【輸出樣例】
589

#include <stdio.h>
int zscj(int n);
int sushu(int n);
int main()
{
    int i,n;
    scanf("%d",&n);
    printf("%d",zscj(n));
    return 0;
}
int zscj(int n)
{
    int i,a[10000],s,j=1;
    
    for(i=2;i<=n/2;i++)
    {
    
        if(sushu(i)==1&&sushu(n-i)==1)
        {
            a[j]=i*(n-i);
            j++;        
        }       
    }
    for(i=1;i<j;i++)
    {
        if(a[i]>a[i+1])
        {
            a[i+1]=a[i];
        }
    }
    return a[j];
}
int sushu(int n)
{
    int i;
    for(i=2;i<=n/2;i++)
    {
        if(n%i==0)
        return 0;
    }
    return 1;   
}

函數(shù)的遞歸

我們了解了函數(shù)的調(diào)用,函數(shù)的遞歸就是函數(shù)的自身調(diào)用。
例如:

#include<stdio.h>
#include<stdlib.h>
void fun(int n);
int main()
{
    fun(1);
    system("pause");
    return 0;
}
void fun(int n)
{
    if(n<5)
    {
        printf("%d\n",n);
        fun(n+1);
        printf("%d\n",n);
    }
}

輸出結(jié)果:
1
2
3
4
4
3
2
1
前一個(gè) 1 2 3 4 是第一個(gè)printf輸出的結(jié)果,也就是函數(shù)遞進(jìn)去的過(guò)程。
后面的 4 3 2 1 是第二個(gè)printf輸出的結(jié)果,也就是函數(shù)往回來(lái)歸的過(guò)程。
函數(shù)自身調(diào)用自身結(jié)束(n == 5)后,函數(shù)返回到上一層的調(diào)用及:fun(4+1);此時(shí)的 n 等于 4 ;所以輸出第五行的 4 。然后又歸到上一層:fun(3+1);此時(shí)的 n 等于 3 ;所以輸出第六行的 3 …
依次往回歸,直到輸出 1 后,返回到main函數(shù),結(jié)束運(yùn)行。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在C語(yǔ)言中,五種基本數(shù)據(jù)類型存儲(chǔ)空間長(zhǎng)度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來(lái)閱讀 4,092評(píng)論 0 2
  • 1)程序結(jié)構(gòu)是三種: 順序結(jié)構(gòu) 、選擇結(jié)構(gòu)(分支結(jié)構(gòu))、循環(huán)結(jié)構(gòu)。 2)讀程序都要從main()入口, 然后從最上...
    杵臼涼薄yo閱讀 2,424評(píng)論 0 7
  • C語(yǔ)言函數(shù)的定義 我們將代碼封裝成函數(shù)的過(guò)程叫做函數(shù)的定義我們所寫(xiě)的每個(gè)C程序都至少有一個(gè)函數(shù),即主函數(shù) main...
    燃_燒閱讀 348評(píng)論 0 0
  • 計(jì)算機(jī)二級(jí)C語(yǔ)言上機(jī)題庫(kù)(南開(kāi)版) 1.m個(gè)人的成績(jī)存放在score數(shù)組中,請(qǐng)編寫(xiě)函數(shù)fun,它的功能是:將低于平...
    MrSunbeam閱讀 6,643評(píng)論 1 42
  • 我想我們會(huì)在一起很久 春天去田野看野菜花 走你走過(guò)的路 夏天住古鎮(zhèn)的民宿 晚上挽著手逛夜市 向?qū)懮膶W(xué)生討一支筆笨...
    常樂(lè)丶閱讀 243評(píng)論 1 3

友情鏈接更多精彩內(nèi)容