计算机使用的是二进制,和十进制不同的是:二进制运算“逢二进一”。下面举一个二进制加法的运算实例:
11101
+ 110
------------
100011
1所在的位置:
6、2、1
你的任务是:对于任意的两个正的二进制数,求它们和中“1”所在的位置。
有多组测试数据,每组测试数据共两行:
第一行:二进制的加数A,总长度<=200。
第二行:二进制的加数B,总长度<=200。
输出二进制数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]);
}
}
}
这样你的输出就不会在末尾多出一个空格了!
博客题解:https://blog.csdn.net/balalinhq/article/details/107030238