给出一个正整数n(1≤n≤100000)。在n的右边加入n的一半,然后在新数的右边再加入n的一半的一半,一直进行,直到不能再加为止。
例如 n=37 37的一半为18(取整数)加到n的右边成为
3718 18的一半为9,加到新数的右边成为
37189 9的一半为4,加到新数的右边成为
371894 4的一半为2,加到新数的右边成为
3718942 2的一半为1,加到新数的右边成为
37189421 1的一半为0,加数结束,最后得到的数是一个8位的数。
加数(必须用递归做)
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
真相重于对错 2021-12-28 15:13关注#include <iostream> using namespace std; int main() { int n; cin >> n; int nh = n / 2; int res = n; while (nh) { int tmp = nh; int t = 1; while (tmp) { t = t * 10; tmp = tmp / 10; } res=res*t + nh; nh = nh / 2; } cout << res; return 0; }本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报解决 3无用 1