最短零一串

2021-08-04 20:05:53 字數 894 閱讀 5679

給定乙個數字,求出這個數字乘以乙個正整數所能得到的最短零一串。若不存在則輸出"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...