演算法設計與分析 1 3 杰哥和數字

2022-08-25 00:03:16 字數 1369 閱讀 7845

有乙個正整數x,想知道有多少個滿足要求的正整數d存在,要求是d是x的因子,並且d和x至少有一位相同。

只有一行,乙個正整數x。

對於30%的資料,x<=100。

對於50%的資料,x<=200。

對於100%的資料,x<=1000000000。

只有一行,乙個整數表示滿足要求的數字d的個數。

10
2

順著題目思路,分兩步,第一步先求所有因子,第二步和x進行比較。

#include #include 

#include

#include

using

namespace

std;

#define max 15

int x, n = 0

;int a[max], b[max]; //

x拆完後儲存於a,找到的因子拆完後儲存於b

int split(int num, int

n);

int issamefigure(int xx, int ii) //

判斷x和它的因子是否存在相同的數字

}if (flag == 1) break

; }

return

flag;

}int split(int num, int n) //

拆數字用,每位數字是以倒序儲存在陣列裡,從a[1]開始

return i; //

返回的是待拆數字的位數

}int

main()

else}}

cout

<

前一步求所有因子是沒法省略的,所有在第二步比較的時候優化了演算法,思想是把所有出現的數字用陣列存起來,如果比對再次出現那個數字,則滿足條件跳出了迴圈。

#include#include

using

namespace

std;

int compare(int

i);int a[9] = ;

intmain()

for (i = 1; i * i <= n; i++)

else}}

cout

<}int compare(int

i)

return0;

}

1 2 杰哥和數字

杰哥特別喜歡和數字打交道,現在他有乙個正整數x,他想知道有多少個滿足要求的正整數d存在,要求是d是x的因子,並且d和x至少有一位相同。輸入格式 只有一行,乙個正整數x。n 1000000000 對於30 的資料,n 100 對於50 的資料,n 200 對於100 的資料,n 1000000000 ...

《演算法設計與分析》一一1 3 抽象演算法分析

1.3 抽象演算法分析 面對乙個演算法問題,當我們已經為之設計乙個正確演算法的時候,下乙個關鍵問題就是分析所設計的演算法是否高效。為此,首先需要針對抽象演算法設計的特點,討論抽象演算法的效能指標。以此為基礎,進一步討論演算法的最壞情況和平均情況複雜度分析。1.3.1 抽象演算法的效能指標 演算法效能...

演算法設計與分析 作業13 讀書筆記

啊哈!演算法 讀書筆記 啊哈!演算法 這本書中的演算法舉例貼近生活,語言詼諧幽默,不會讓人產生枯燥感,並配有很多幽默的插圖。演算法講解通俗易懂,並配有詳細c語言 和注釋,是一本適合初學者學習以及借鑑的演算法書籍。由於時間有限,我簡單花了一些時間閱讀了其中的排序板塊,各種排序演算法層出不窮,一直都是困...