演算法課 貪心 W12自學2密碼發生器

2021-10-06 10:09:33 字數 2459 閱讀 3272

在對銀行賬戶等重要許可權設定密碼的時候,我們常常遇到這樣的煩惱:

如果為了好記用生日吧,容易被破解,不安全;如果設定不好記的密碼,又擔心自己也會忘記;

如果寫在紙上,擔心紙張被別人發現或弄丟了…

這個程式的任務就是把一串拼音字母轉換為6位數字(密碼)。

我們可以使用任何好記的拼音串(比如名字,王喜明,就寫:wangximing)作為輸入,程式輸出6位數字。

變換的過程如下:

第一步. 把字串6個一組摺疊起來,

比如 wangximing

則變為:

wangxi

ming

第二步. 把所有垂直在同乙個位置的字元的ascii碼值相加,得出6個數字,如上面的例子,

則得出:

228 202 220 206 120 105

第三步. 再把每個數字「縮位」處理:

就是把每個位的數字相加,得出的數字如果不是一位數字,就再縮位,直到變成一位數字為止。

例如: 228 => 2+2+8=12 => 1+2=3

上面的數字縮位後變為:344836, 這就是程式最終的輸出結果!

要求程式從標準輸入接收資料,在標準輸出上輸出結果。

輸入格式為:第一行是乙個整數n(<100),表示下邊有多少輸入行,接下來是n行字串,就是等待變換的字串。

輸出格式為:n行變換後的6位密碼。

輸入:5

zhangfeng

wangximing

jiujingfazi

woaibeijingtiananmen

haohaoxuexi

則輸出:

772243

344836

297332

716652

875843

#include

#include

#include

intf

(int x)

x=sum;

}return x;

}int

main()

;gets

(a);

for(i=

0;i<=

strlen

(a)-

1;i++

) result[k]=f

(b[0])

*100000+f

(b[1])

*10000+f

(b[2])

*1000+f

(b[3])

*100+f

(b[4])

*10+f

(b[5])

*1;}

for(k=

0;k<=n-

1;k++

)printf

("%d\n"

,result[k]);

return0;

}

我發現沒什麼好吐槽的,思路非常重要,換誰保險也都得這麼做

需要注意的幾個點

for

(i=0

;i<=

strlen

(a)-

1;i++

)

可以幫助字串直接對位記錄

while

(x>=10)

x=sum;

}

取出各個位次相加,然後檢查是否又》10

result[k]=f

(b[0])

*100000+f

(b[1])

*10000+f

(b[2])

*1000+f

(b[3])

*100+f

(b[4])

*10+f

(b[5])

*1;

本來我覺得這個寫法很low,試了一波之後感覺真他媽香氣撲鼻

雞蛋裡找骨頭

for

(k=0

;k<=n-

1;k++

)printf

("%d\n"

,result[k]

);

可以直接輸出而不儲存陣列

蛋疼環節

memset(tmparr,0,sizeof tmparr);

因為長度的問題,我沒有清零時似乎出現已賦值的問題

1.分列儲存

2.按位相加

3.更新輸出

#include

#include

using

namespace std;

const

int len =6;

intcheck

(int x)

x=sum;

}return x;

}int

main()

return0;

}

w12選做 E做作業

馬上假期就要結束了,zjm還有 n 個作業,完成某個作業需要一定的時間,而且每個作業有乙個截止時間,若超過截止時間,一天就要扣一分。zjm想知道如何安排做作業,使得扣的分數最少。tips 如果開始做某個作業,就必須把這個作業做完了,才能做下乙個作業。輸入格式 有多組測試資料。第一行乙個整數表示測試資...

演算法 12 貪心

概念 所謂貪心演算法是指,在對問題求解時,總是做出在當前看來是最好的選擇。也就是說,不從整體最優上加以考慮,它所做出的僅僅是在某種意義上的區域性最優解。貪心演算法不是對所有問題都能得到整體最優解,選擇的貪心策略必須具備無後效性 即某個狀態以後的過程不會影響以前的狀態,只與當前狀態有關。所以,對所採用...

nefu 演算法課設 貪心

遞迴與分治 動態規劃 貪心演算法 回溯演算法 1 問題描述 設有n 個顧客同時等待一項服務。顧客i需要的服務時間為ti,1 i n 應如何安排n個顧客的服務次序才能使平均等待時間達到最小?平均等待時間是n 個顧客等待服務時間的總和除以n。2 程式設計任務 對於給定的n個顧客需要的服務時間,程式設計計...