HZNUOJ

二进制加法

Tags:
Time Limit:  1 s      Memory Limit:   32 MB
Submission:397     AC:172     Score:92.36

Description

计算机使用的是二进制,和十进制不同的是:二进制运算“逢二进一”。下面举一个二进制加法的运算实例:

   11101          

+    110          

------------       

 100011          

1所在的位置:

6、2、1          

   
你的任务是:对于任意的两个正的二进制数,求它们和中“1”所在的位置。

Input

有多组测试数据,每组测试数据共两行:

第一行:二进制的加数A,总长度<=200。

第二行:二进制的加数B,总长度<=200。

Output

输出二进制数A+B中“1”所在的位置,位置排序为从左到右:N、N-1、N-2...1,数据之间用空格分隔,行末没有多余的空格。


温馨提醒:
输出小技巧。如何在不确定何时为第一次输出,也不知道何时为最后一次输出时控制末尾的空格,使程序不会在末尾多输出一个空格导致程序错误。下面是一个例子:
int i, hasPrinted;
hasPrinted = 0;
for (i=0; i<n; i++) {
    if (xxxxxxxx) { // 这里写输出的判定条件
        if (!hasPrinted) {// 如果没有进行过输出
            printf(“%d”, n[i]); // 根据你的情况输出,不一定就是%d和n[i]
            hasPrinted = 1;
        } else {
            printf(“ %d”, n[i]);
        }
    }
}


这样你的输出就不会在末尾多出一个空格了!

Samples

input
111 110 11101 110
output
4 3 1 6 2 1

Hint

博客题解:https://blog.csdn.net/balalinhq/article/details/107030238

Author

YU, Dongwei

Source

2014杭师计算机协会第一届程序设计竞赛