テーマ244-16進数の簡単な演算
2178 ワード
16進法の単純演算
時間制限:
1000 ms|メモリ制限:
65535 KB
難易度:
1
説明
16進数の加減式をあげます.8進数で式の結果を出力する必要があります.
入力
最初の行には正の整数T(0の次にT行があり、各行には1つの文字列s(長さ15未満)が入力されます.文字列には2つの数と1つのプラス記号または1つのマイナス記号が入力され、式は合法的で、すべての演算数は31ビット未満です.
しゅつりょく
各式の出力は1行を占め、式の8進数の結果を出力します.
サンプル入力
サンプル出力
//コード:
[html] view plain
copy
print ?
#include
int main(){
int T,x,y;
char ch;
scanf("%d",&T);
while(T--){
scanf("%x%c%x",&x,&ch,&y);
if(ch=='+')
printf("%o",x+y);
else
printf("%o",x-y);
}
return 0;
}
//最初は問題を複雑に考え、文字列配列でシミュレーションしたものを、データの基本フォーマットタイプで変換することを忘れてしまう!!!C言语の基本的な知识はやはり强化する必要があります!!!
フォーマットの説明は、%d%fなどの「%」とフォーマット文字で構成されます.出力されたデータを指定したフォーマット出力に変換する役割を果たします.フォーマットの説明は、常に「%」文字で始まります.異なるタイプのデータは異なるフォーマット文字を使用します.フォーマット文字はd,o,x,u,c,s,f,e,gなどである.のように
%d整数出力、%ld長整数出力、
%oは8進数で整数を出力し、
%xは16進数で整数を出力し、
%uはunsigned型データ(符号なし)を10進数で出力する.
%cは文字を出力するために使用されます.
%sは文字列を出力するために使用されます.
%fは実数を出力し、小数で出力するために使用され、
%eは実数を指数形式で出力し、
%gは、サイズに応じてfフォーマットまたはeフォーマットを自動的に選択し、無意味なゼロを出力しない.
scanf(制御文字、アドレスリスト)フォーマット文字の意味はprintf関数と同じであり、アドレスリストはいくつかのアドレスからなる表列であり、変数のアドレス、または文字列のヘッダアドレスであってもよい.例えばscanf("%d%c%s",&a,&b,str);
もう一つの方法は、C++の入出力を学習するついでに
▲
setbase(int n):数値をn進法に変換する.
cout<
cout<
cout<
結果は次のとおりです.
(スペース)(スペース)377
(スペース)(スペース)255
(スペース)(スペース)ff
hexは16進、octは8進、decは10進
時間制限:
1000 ms|メモリ制限:
65535 KB
難易度:
1
説明
16進数の加減式をあげます.8進数で式の結果を出力する必要があります.
入力
最初の行には正の整数T(0の次にT行があり、各行には1つの文字列s(長さ15未満)が入力されます.文字列には2つの数と1つのプラス記号または1つのマイナス記号が入力され、式は合法的で、すべての演算数は31ビット未満です.
しゅつりょく
各式の出力は1行を占め、式の8進数の結果を出力します.
サンプル入力
3
29+4823
18be+6784
4ae1-3d6c
サンプル出力
44114
100102
6565
//コード:
[html] view plain
copy
print ?
#include
int main(){
int T,x,y;
char ch;
scanf("%d",&T);
while(T--){
scanf("%x%c%x",&x,&ch,&y);
if(ch=='+')
printf("%o",x+y);
else
printf("%o",x-y);
}
return 0;
}
//最初は問題を複雑に考え、文字列配列でシミュレーションしたものを、データの基本フォーマットタイプで変換することを忘れてしまう!!!C言语の基本的な知识はやはり强化する必要があります!!!
フォーマットの説明は、%d%fなどの「%」とフォーマット文字で構成されます.出力されたデータを指定したフォーマット出力に変換する役割を果たします.フォーマットの説明は、常に「%」文字で始まります.異なるタイプのデータは異なるフォーマット文字を使用します.フォーマット文字はd,o,x,u,c,s,f,e,gなどである.のように
%d整数出力、%ld長整数出力、
%oは8進数で整数を出力し、
%xは16進数で整数を出力し、
%uはunsigned型データ(符号なし)を10進数で出力する.
%cは文字を出力するために使用されます.
%sは文字列を出力するために使用されます.
%fは実数を出力し、小数で出力するために使用され、
%eは実数を指数形式で出力し、
%gは、サイズに応じてfフォーマットまたはeフォーマットを自動的に選択し、無意味なゼロを出力しない.
scanf(制御文字、アドレスリスト)フォーマット文字の意味はprintf関数と同じであり、アドレスリストはいくつかのアドレスからなる表列であり、変数のアドレス、または文字列のヘッダアドレスであってもよい.例えばscanf("%d%c%s",&a,&b,str);
もう一つの方法は、C++の入出力を学習するついでに
#include
#include
#include
using namespace std;
int main(){
ios::sync_with_stdio(false);
int t;cin>>t;
while(t--) {
int x,y;
char op;
cin>>hex>>x>>op>>y;
if(op == '+')cout<
▲
setbase(int n):数値をn進法に変換する.
cout<
cout<
cout<
結果は次のとおりです.
(スペース)(スペース)377
(スペース)(スペース)255
(スペース)(スペース)ff
hexは16進、octは8進、decは10進