PTA1048数字加密
这道题思路其实很简单
1. 将两个数组反转
2. 找出最大的长度,用max记录
3. 将短的补0
4. 计算
5. 倒顺序输出
多敲了一个=导致找了一个小时的bug,谁能告诉我手抖怎么办。
知识点
1. reverse函数:头文件#include<string.h>
功能:将字符数组倒过来。
相关博客:[点这里](https://blog.csdn.net/qq_40828914/article/details/81138117)
1. 将两个数组反转
2. 找出最大的长度,用max记录
3. 将短的补0
4. 计算
5. 倒顺序输出
多敲了一个=导致找了一个小时的bug,谁能告诉我手抖怎么办。
知识点
1. reverse函数:头文件#include<string.h>
功能:将字符数组倒过来。
相关博客:[点这里](https://blog.csdn.net/qq_40828914/article/details/81138117)
#include<stdio.h> #include<string.h> #include<iostream> #include<algorithm> using namespace std; int main(){ char a1[110],a2[110],a3[110]; scanf("%s %s",a1,a2); int l1=strlen(a1),l2=strlen(a2); reverse(a1,a1+l1); reverse(a2,a2+l2); int max; if(l1>l2){max=l1; for(int i=l2;i<=l1-1;i++) a2[i]='0'; } else if(l2>l1){max=l2; for(int i=l1;i<=l2-1;i++) a1[i]='0'; } else max=l2; int flag=0; int tem; for(int i=0;i<max;i++){ if(flag==0){ tem=(a1[i]-'0'+a2[i]-'0')%13; if(tem==10) a3[i]='J'; else if(tem==11) a3[i]='Q'; else if(tem==12) a3[i]='K'; else a3[i]=tem+'0'; flag=1; } else{ tem=a2[i]-a1[i]; while(tem<0) tem=tem+10; a3[i]=tem+'0'; flag=0; }//printf("^%c^",tem+'0'); // // printf("*%d*",tem); } //printf("*%c*&%c&*%c*",a1[0],a3[0],a2[0]); //cout<<a1<<endl<<a2<<endl; for(int i=max-1;i>=0;i--)printf("%c",a3[i]); //cout<<a3;