标签:水题 int Turing CodeForces step result 256 ASCII first
题意
给你一串字符串,包含1~105个字符。按照规则输出数字。
-
The 8-bit binary notation of the ASCII-code of the previous printed character is reversed. When the first element of the array is processed, the result of this step is considered to be 0. 将ASCII码反转过来。
-
The i-th element of the array is subtracted from the result of the previous step modulo 256. 用前一个值减去这个值,并且模256,如果这是第一个那么前一个值为0.
-
The binary notation of the result of the previous step is reversed again to produce ASCII-code of the i-th character to be printed. 输出,继续。
样例
Input
Hello, World!
Output
238
108
112
0
64
194
48
26
244
168
24
16
162
Note
Let's have a closer look at the beginning of the example. The first character is "H" with ASCII-code 72 = 010010002. Its reverse is 000100102 = 18, and this number should become the result of the second step of processing. The result of the first step is considered to be 0, so the first element of the array has to be (0 - 18) mod 256 = 238, where a mod b is the remainder of division of a by b.
思路
- 按照他的步骤做就好了
- 输入的时候卡了一下,要用getline(cin,s); s是string类型的。
代码
#include<bits/stdc++.h>
using namespace std;
const int MAXN=105;
int a[MAXN];
const int MOD= 256;
string s;
int main(){
getline(cin,s);
int len=s.size();
int tmp,t;
for(int i=1;i<=len;i++){
a[i]=s[i-1];
tmp=a[i];
t=0;
int j=0;
while(tmp){
j++;
if(tmp&1){
t+=1<<(8-j);
}
tmp>>=1;
}
a[i]=t;
printf("%d\n", (a[i-1]-a[i]+MOD)%MOD);
}
return 0;
}
标签:水题,int,Turing,CodeForces,step,result,256,ASCII,first 来源: https://www.cnblogs.com/xuwanwei/p/12802679.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。