生活随笔
收集整理的這篇文章主要介紹了
codevs4343 找回密码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述?Description
jrMz 很喜歡動漫《叛逆的魯魯修》(額= =不知道是不是因為他盯上了動畫片里的 MM),他
準備以一種神奇的方式降臨《叛逆的魯魯修》世界,所以他先從《變形金剛》里把大黃蜂拐
了出來,然后成功加入了黑色騎士團。不過比較坑的事情出現了,正在與機甲激烈戰斗中的
大黃蜂突然 WA 了,只有輸入密碼才能使它 AC,不幸的是 jrMz 已經忘記了密碼。大黃蜂
的密碼是一個 N 位的十進制非負整數(允許前綴 0),為了防止遺忘, jrMz 曾經將密碼記了
下來。出于保密他沒有將密碼按原樣記錄(作死啊= =),于是他將他的密碼乘以 E,其中
E=233……3(共 N-1 個 3),然后將結果的最后 N 位(保留前綴 0)進行記錄。看著本來正
在欣賞他颯爽風姿的 MM(此僅僅是舉例,舉例!比如說魯魯修的妹妹什么的……), jrMz
只好緊握住你的雙手向你求助了。
輸入描述?Input Description
僅一行,一個 N 位的十進制非負整數,表示密碼與 E 的乘積的最后 N 位。
輸出描述?Output Description
僅一行,一個 N 位的十進制非負整數,表示密碼。
樣例輸入?Sample Input
178
樣例輸出?Sample Output
666
數據范圍及提示?Data Size & Hint
【 Sample Explanation】
在所有三位十進制非負整數中,只有 666,滿足其與 233 的乘積( 155178)的最后 3 位是 178。
【 Data Size】
對于 30%的數據, N<=7;
對于 60%的數據, N<=1,000;
對于 100%的數據, 3<=N<=1,000,000。
#include<cstdio>
#include<cstring>
char a[
1000010],ans[
1000010];int main(){scanf("%s",ans);int n=strlen(ans),g=ans[n-
1]-
'0',k=
0;for(
int i=n-
1;i>=
0;i--) a[n-i]=ans[i]-
'0';memset(ans,0,
sizeof(ans));for(
int i=
1;i<=n;i++
){ans[i]+=a[i]*
3;ans[i+
1]+=ans[i]/
10;ans[i]=ans[i]%
10;}ans[n]=(ans[n]+g)%
10;for(
int i=
1;i<=n;i++
){a[i]=k-
ans[i];if(a[i]<
0){a[i]+=
10;k=-
1;}}for(
int i=n;i>
0;i--) printf(
"%d",a[i]);return 0;}//origin
#include<iostream>
#include<cstdio>
#include<
string>
#include<cstring>
#include<algorithm>
#include<queue>
#include<vector>
#include<stack>
#include<map>
using namespace std;
int n,a[
2000015],b[
2000015],c[
2000015],d[
2000015];
const int ans[
10] = {
0,
7,
4,
1,
8,
5,
2,
9,
6,
3};
inline int getans(
int w){int cmd =
3;for(
int i =
1;i <= n;i++
){if(i == n) cmd =
2;if(w ==
0)
break;for(
int j = w-
1;j < w;j++
){c[i+j-
1] += cmd*
b[j];c[i+j] += c[i+j-
1]/
10;c[i+j-
1] %=
10;}}return ans[(a[w]-c[w]+
10)%
10];
}
int main(){n =
0;char cmd;while(
1){cmd =
getchar();if(cmd <
48)
break;d[++n] = cmd-
'0';}for(
int j = n;j >=
1;j--) a[j] = d[n-j+
1];for(
int i =
1;i <= n;i++
){b[i] =
getans(i);}for(
int i = n;i >=
1;i--)printf(
"%d",b[i]);return 0;
} ?
轉載于:https://www.cnblogs.com/hyfer/p/5851904.html
總結
以上是生活随笔為你收集整理的codevs4343 找回密码的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。