給定乙個數字,求出這個數字乘以乙個正整數所能得到的最短零一串。若不存在則輸出"not found"
記不清了 原題並非如此直接。
乙個數字n
n的最短另一串。若不存在,輸出 「not found」
廣度優先搜尋,以結果中的每一位數碼為單位乙個狀態。
原理是當在末尾加入乙個新的數碼時,其mod值將會符合以下條件:
//如果數碼為0,則新的值為
cur.mod * 10 % n
//如果數碼為1,則新的值為
(cur.mod * 10 + 1) % n
同時,為了優化以及排除not found的情況,可以注意到:
每兩個同餘的數事實上只需要儲存較短的乙個,因此採用陣列thru記錄了餘數是否出現。
如果都出現過而尚未發現答案,則失敗;
若再次出現,則不再放入bfs佇列中。
#include
#include
#include
#include
#include
using
namespace
std;
struct stat
};int main()
if (cur.mod != 0)
vector
res;
res.push_back(cur.bit);
while (cur.prev != -1)
for (int i = (int)res.size() - 1; i >= 0; i--)
cout
<< endl;
return
0;}
輸入一串字元,找出最長和最短單詞並輸出
在上篇的基礎上,稍新增幾個變數則可輸出最長和最短 include include include int main char brr 50 char crr 50 puts 請輸入 scanf n arr n 掃瞄集用法,表示讀取除 n 以外的字元 int i,j int n,m 0 n 標記單詞尾...
將一串數字順序後移
這道題主要是程式設計邏輯的訓練。涉及到陣列 指標的知識點,本道題目也能很好的表達出選用不同的資料結構,對同一道題目會有完全不同的解題思路,程式設計複雜度也會有很大的差別。方法一 採用陣列資料結構儲存資料。思路 使用乙個臨時陣列,把原陣列中的後m個數字先複製到這個新建的陣列中,再把原陣列中的元素向後移...
sql列轉化為一串字串
參考如下 如何將一列中所有的值一行顯示 資料來源 a b c d e 結果 a,b,c,d,e create table tb col varchar 20 insert tb values a insert tb values b insert tb values c insert tb valu...