[再]文字を逆に

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
よろしくおねがい

[再]文字を逆に

#1

投稿記事 by よろしくおねがい » 1年前

コード: 全て選択


using namespace std;


int main() {


	int a,b;


	cout << "10進数\n";

	cin >> a;



	while (a >= 1) {

	        b = a % 2;

		a = a - b;

		a = a / 2;




		cout << b;




	}



}

この10進数を2進数に変えるプログラムは10と打つと0101となるのですが、なんとかできるだけこの形を崩さずに0101を1010に出来ませんか?

たいちう
記事: 415
登録日時: 7年前

Re: [再]文字を逆に

#2

投稿記事 by たいちう » 1年前

「できるだけこの形を崩さず」という条件が難しいので無視して、私が普通に書くとこうなります。

コード: 全て選択

#include <iostream>

using namespace std;

void printBinary(int a) {
	if (a) {
		printBinary(a / 2);
		cout << a % 2;
	}
}

int main() {
	int a;
	cout << "10進数\n";
	cin >> a;

	printBinary(a);

	return 0;
}

アバター
purin52002
記事: 235
登録日時: 1年前
連絡を取る:

Re: [再]文字を逆に

#3

投稿記事 by purin52002 » 1年前

stack使えばあまり形が崩れないかも、、、?

コード: 全て選択

#include<stack>
using namespace std;
 
 
int main() {
 
 
    int a,b;
 
    stack<int> st;//new!
 
    cout << "10進数\n";
 
    cin >> a;
 
 
 
    while (a >= 1) {
 
            b = a % 2;
 
        a = a - b;
 
        a = a / 2;
 
 
 
 
        //cout << b;
        st.push(b);//new!
 
 
 
    }
 
    //new!
    while(!st.empty()) {
        cout<<st.top();
        st.pop();
    } 
 
}
c++初心者を自負しています。
質問者さんには今後私にプログラミングを教えてくれるようにやさしく丁寧に教えるつもりです。ぎぶあんどていく^p^
回答者さんには精一杯感謝します。ぎぶおんりー^p^

よろしくおねがい

Re: [再]文字を逆に

#4

投稿記事 by よろしくおねがい » 1年前

お二人方、ありがとうございました!
無事、完成させることが出来ました^^

かずま

Re: [再]文字を逆に

#5

投稿記事 by かずま » 1年前

よろしくおねがい さんが書きました:無事、完成させることが出来ました^^
本当に完成したのですか?
それなら、その完成したコードを提示してください。
入力が 0 の場合、0 と出力されますか?

次のコードは参考になりますか?

コード: 全て選択

#include <iostream>
#include <string> 
using namespace std;
 
int main()
{
    cout << "10進数\n";
    int a;
    cin >> a;
    string s; 
    do s = char((a & 1) + '0') + s; while (a >>= 1);
    cout << s; 
}
do s = char((a % 2) + '0') + s; while (a /= 2); でもいいんだけど。

かずま

Re: [再]文字を逆に

#6

投稿記事 by かずま » 1年前

よろしくおねがい さんが書きました:なんとかできるだけこの形を崩さずに0101を1010に出来ませんか?

コード: 全て選択

#include <iostream> 
using namespace std;
 
 
int main() {
 
 
    int a, b[12], i = 0;
 
 
    cout << "10進数\n";
 
    cin >> a;
 
 
 
    do {
 
        b[i++] = a % 2;
 
 

        a = a / 2;
 
    } while (a); 
 
 
    while (i) {
 
        cout << b[--i]; 
 
 
    }
 
 
 
}

たいちう
記事: 415
登録日時: 7年前

Re: [再]文字を逆に

#7

投稿記事 by たいちう » 1年前

かずまさん

> 入力が 0 の場合、0 と出力されますか?

私のプログラム、ダメダメでしたね。

返信

“C言語何でも質問掲示板” へ戻る