ページ 11

[再]文字を逆に

Posted: 2017年4月17日(月) 20:46
by よろしくおねがい

コード:


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に出来ませんか?

Re: [再]文字を逆に

Posted: 2017年4月17日(月) 22:05
by たいちう
「できるだけこの形を崩さず」という条件が難しいので無視して、私が普通に書くとこうなります。

コード:

#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;
}

Re: [再]文字を逆に

Posted: 2017年4月17日(月) 22:16
by purin52002
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();
    } 
 
}

Re: [再]文字を逆に

Posted: 2017年4月17日(月) 22:42
by よろしくおねがい
お二人方、ありがとうございました!
無事、完成させることが出来ました^^

Re: [再]文字を逆に

Posted: 2017年4月18日(火) 06:17
by かずま
よろしくおねがい さんが書きました:無事、完成させることが出来ました^^
本当に完成したのですか?
それなら、その完成したコードを提示してください。
入力が 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: [再]文字を逆に

Posted: 2017年4月18日(火) 08:34
by かずま
よろしくおねがい さんが書きました:なんとかできるだけこの形を崩さずに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]; 
 
 
    }
 
 
 
}

Re: [再]文字を逆に

Posted: 2017年4月18日(火) 09:06
by たいちう
かずまさん

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

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