C語言 豎式問題 演算法競賽入門解題 詳解

2021-10-04 01:46:16 字數 1284 閱讀 6912

豎式問題。

找出所有形如 abc∗deabc∗de (三位數乘以兩位數)的算式,使得在完整的豎式中,所有數字都屬於乙個特定的數字集合。輸入數字集合(相鄰數字之間沒有空格),輸出所有豎式。每個豎式前應有編號,之後應有乙個空行。最後輸出解的總數。具體格式見樣例輸出。(為了便於觀察,示例中空格由小數點代替顯示,程式中依舊是空格)

樣例輸入:

2357

樣例輸出:

<

1>

..775

x..33

----

-.2325

2325.

----

-25575

the number of solutions =

1

本題的思路應該是很清晰的:嘗試所有的abc和de,判斷是否滿足條件

#include

#include

#pragma warning(disable:4996)

intmain()

}printf

("the number of solutions = %d\n"

, count)

;return0;

}

執行結果:

注意:1.在「scanf("%s", s)」中,不要在s前面加上「&」符號。「scanf("%s", s)」遇到

空白字元會停下來。

2.先考慮輸出,因為它比較簡單。每個豎式需要列印7行,但不一定要用7條printf語句,1條足矣。

首先計算第一行乘積x=abce,然後是第二行y=abcd,最後是總乘積z=abc*de,然後一次性列印出來:

printf("%5d\nx%4d\n-----\n%5d\n%4d\n-----\n%5d\n\n", abc, de, x, y, z);

注意這裡的%5d,它表示按照5位數列印,不足5位在前面補空格(還記得%03d

嗎?)。

3.strchr的作用是在乙個字串中查詢單

個字元,而這個sprintf似曾相識:之前用過printf和fprintf。

沒錯!這3個函式是「親兄弟」,printf輸出到螢幕,fprintf輸出到檔案,而sprintf輸出到字串。多數情況下,螢幕總是可以輸出的,檔案一般也能寫(除非磁碟滿或者硬體損壞),但字串就不一定了:應該保證寫入的字串有足夠的空間。

(以上內容出自:演算法競賽入門經典 第二版 這是我的筆記)

演算法入門競賽 豎式問題

題目 找出所有形如abc de 三位數乘以兩位數 的算式,使得在完整的豎式中,所有數字都屬於乙個特定的數字集合。輸入數字集合 相鄰數字之間沒有空格 輸出所有豎式。每個豎式前應有編號,之後應有乙個空行。最後輸出解的總數。具體格式見樣例輸出 為了便於觀察,豎式中的空格改用小數點顯示,但你的程式應該輸出空...

《演算法競賽入門經典》 豎式問題

題目 找出所有形如abc de 三位數乘以兩位數 的算式,使得在完整的豎式中,所有數字都屬於乙個特定的數字集合。輸入數字集合 相鄰數字之間沒有空格 輸出所有豎式。每個豎式前應有編號,之後應有乙個空行。最後輸出解的總數。具體格式見樣例輸出 為了便於觀察,豎式中的空格改用小數點顯示,但你的程式應該輸出空...

演算法競賽入門經典ch3 ex4豎式問題

找出所有形如abc de 三位數乘以兩位數 的算式,使得在完整的豎式中,所有數字都屬於乙個特定的數字集合。輸入數字集合 相鄰數字之間沒有空格 輸出所有 豎式。每個豎式前應有編號,之後應有乙個空行。最後輸出解的總數。樣例輸入 樣例輸出 2357 1 775x 33 2325 2325 25575 th...