2022.12.04 PM 09:30 by CBJ
來源 : https://zerojudge.tw/ShowProblem?problemid=a065 出題者 : snail蝸牛 標籤 : 字元處理 難易度 : 1
解題想法 : 很直覺的會想用ascii來做,因為ascii本身是依據字母順序編碼(詳可參考 : https://zh.wikipedia.org/wiki/ASCII#%E5%8F%AF%E6%98%BE%E7%A4%BA%E5%AD%97%E7%AC%A6),而取得a和b的距離就和取兩座標點距離相同,也就是|ascii(a)-ascii(b)|,其中ascii(n)為n的ascii碼。 實作上可以跑一個for i from 1~(字串長-1),每次和前一個算距離並輸出,迴圈完成後再輸出換行。 Tips: Python取ascii碼可使用ord(),而C/C++本身就支援字元相減(會轉成ascii後相減),因此不須另外將字元轉成ascii數值。
//C language
#include<stdio.h>
#include<string.h> //strlen()
#include<stdlib.h> //abs()
int main(){
char s[7];
scanf("%s",s);
for(int i=1;i<strlen(s);i++){
printf("%d",abs(s[i]-s[i-1]));
}
printf("\n");
return 0;
}

//C++ language
#include<iostream>
#include<string> //string
#include<cstdlib> //abs()
using namespace std;
int main(){
string s;
cin>>s;
for(int i=1;i<s.length();i++){
cout<<abs(s[i]-s[i-1]);
}
cout<<"\n";
return 0;
}

## Python language
a=input()
for i in range(1,len(a)):
print(abs(ord(a[i])-ord(a[i-1])),end='')
print()
