1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 破译密码游戏

破译密码游戏

时间:2021-11-09 18:42:19

相关推荐

破译密码游戏

【题目描述】

人们在做一个破译密码游戏:有两支密码棒分别是红色和蓝色,把红色密码棒上的数字减去蓝色密码棒上的数字,就是开启密码锁的密码。现已知密码棒上的数字位数不超过20000位,请在一秒内求出密码。

【输入】

2行,每行有一个正整数,每个正整数不超过20000位。

【输出】

一行,一个正整数,为输入的两个正整数中较大者减去较小者的差值。

例如:

#include <bits/stdc++.h>#define M 20000using namespace std;int main(){ char s1[M+10],t1[M+10],s[M+10],t[M+10];int a[M+10]={0},b[M+10]={0},c[M+10]={0},i,j,lens,lent,len;cin >> s1 >> t1;if(strlen(s1)>strlen(t1)){strcpy(s,s1);strcpy(t,t1);}else if(strlen(s1)<strlen(t1)){strcpy(s,t1);strcpy(t,s1);}else{if(strcmp(s1,t1)>0){strcpy(s,s1);strcpy(t,t1);}else if(strcmp(s1,t1)<0){strcpy(s,t1);strcpy(t,s1);}else{cout << 0 << endl;return 0;}}lens = strlen(s);lent = strlen(t);j=0;for(i=lens-1; i>=0; i--){a[j++] = s[i]-'0';}j=0;for(i=lent-1; i>=0; i--){b[j++] = t[i]-'0';}len = max(lens,lent);for(i=0; i<len; i++){c[i] = a[i] - b[i];if(c[i] < 0){a[i+1]--;c[i] += 10;}}if(c[i-1] == 0){len--;}for(i=len-1; i>=0; i--){cout << c[i];}cout << endl;return 0;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。