1. 程式人生 > >用遞迴法求因式分解

用遞迴法求因式分解

偶爾在網上看到這個題目,但是他們所用的方法,無論是迭代還是遞迴,感覺都不夠簡潔。我想,這個看起來很簡潔的抽象,應該有簡單的方法,後來終於想出來了。

求一個整數的分解因式,如36=2*2*3*3;

程式碼如下:

//[email protected]
void  fact(int n){ 
    int i;
    for(i=2; i<=n; i++)
        if( n%i == 0 ){
            if(i==n) //最後一個因子
                printf("%d", i);
            else
                printf("%d*", i);
            fact(n/i);
            break;
        }
}


相關推薦

因式分解

偶爾在網上看到這個題目,但是他們所用的方法,無論是迭代還是遞迴,感覺都不夠簡潔。我想,這個看起來很簡潔的抽象,應該有簡單的方法,後來終於想出來了。 求一個整數的分解因式,如36=2*2*3*3; 程式

C語言 n的階乘

#include<stdio.h> int main() {int njc(int n); int x,n,y; scanf("%d",&n); y=njc(n); printf("%d",y); return 0; } int njc(int n

N階勒讓德多項式的值

#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<math.h> #include<string.h> #include

python實現斐波那契數列 實現第N個菲波那切數列

斐波那契數列即著名的兔子數列:1、1、2、3、5、8、13、21、34、…… 數列特點:該數列從第三項開始,每個數的值為其前兩個數之和,用python實現起來很簡單: a=0 b=1 while b < 1000: print(b) a, b = b, a+b

1002:最大值

 Problem Description 設整數序列a1,a2,...,an,給出求解最大值的遞迴程式。  Input 有多組資料,每組第一行為序列長度n(0<n<50),第二行為該整數序列的各元素。  Output 輸出該整數序列中

使用階乘(附帶詳細解答)

c++/c語言中,使用遞迴求階乘詳解 #include <iostream> using namespace std; //問題:利用遞迴方法求n的階乘。 //先寫一個遞迴函式,主函式中呼叫 int jc(int n){ //if用1判斷遞迴是否結束,同時n=1時

方法n的階乘

程式碼: #include<iostream> using namespace std; int fact(int n); int main() { int n; loop: cin >> n; cout << fact(n);

java實現函式入門級例子:函式一個數組中的最大值

我們開始把陣列分為兩半,分別找出最大值,那麼這個最大值就是最後的最大值:同時我們左右兩邊繼續細分,停止條件就是細分到單個數值為止。 package chapter1; //使用遞迴求出一個數組中的最小值 public class FindMax { public sta

程式基本演算法習題解析 函式 s=1+2+3+...+n 的和。

附上程式碼: // Chapter6_2.cpp : Defines the entry point for the application. // 用遞迴函式求 s=1+2+3+...+n 的和 #include "stdafx.h" #include<iostream> usi

函式n的階乘

#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> int fact(int a) { //如果a等於1,直接輸出;如果大於1,連續呼叫函式求階乘

將一個整數n轉換成字串。 例如,輸入483,應輸出字串“483”。n的位數不確定,可以是任意的整數。

/*3、用遞迴法將一個整數n轉換成字串。 例如,輸入483,應輸出字串“483”。n的位數不確定,可以是任意的整數。*/ #include <stdio.h> int main()

C語言 將一個整數n轉換成字串

#include<stdio.h> int main(void) { int n; int enter_n(); void print_n(int n); n=enter_n(); print_n(n); return 0; } int enter_n()

n^k

遞迴法求n^k 思路分析 遞迴法求n^k: 遞推關係:(nk)=n*(n(K-1)); 出口:k=0; 完整程式碼: #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<

斐波那契數

遞迴法求斐波那契數 思路分析:遞迴法最重要的兩點是:1)遞推關係:Fab(n)=Fab(n-1)+Fab(n-2); ​ 2)出口:n=1||n=2; 程式碼: #define _CRT_SECURE_NO_WARNINGS #include<stdio.h>

python實現斐波那契數列 實現第N個菲波那切數列

斐波那契數列即著名的兔子數列:1、1、2、3、5、8、13、21、34、…… 數列特點:該數列從第三項開始,每個數的值為其前兩個數之和,用python實現起來很簡單: a=0 b=1 while b < 1000: print(b) a, b = b

函式出兩個數的最大公約數

 #include <stdio.h> int gcd(int x, int y); int main() {     int m,n;     printf("輸入兩個數字:");     scanf("%d %d", &m, &n);  

方法n階勒讓德多項式的值(C++)

#include <iostream> using namespace std; float p(float,float); int main() {float n,x;cin>>n>>x;cout<<p(n,x)<&l

java方法階乘

一個正整數的階乘,是所有不大於該數的正整數的積,並且0的階乘為1,n的階乘寫作n!,由1808年基斯頓·卡曼(Christian Kramp,1760~1826)引進這個表示法。 java程式碼: //用遞迴方法求階乘 public class Fact

方法n的階乘(C語言)

用遞迴方法求n! #include<stdio.h> int main() { int fac(int n); int n; int y; printf("

IOS/Android開發獲取指定開始字串到結尾字串中間內容

前言 最近在做ios開發的時候,突然遇到了一個需求,感覺挺有意思的就拿出來記錄一下.效果圖是這樣的: 乍一看,就是幾個特殊關鍵字變色嘛,沒什麼難的,我原本以為後臺的介面會把要變色的關鍵字單獨給我個欄位,裡面儲存一個變色字元陣列,可是當我拿到介面的時候,挺懵逼的,因為後臺給