首页 > 编程语言 >打卡信奥刷题(408)用C++信奥B3884[普及组/提高] [信息与未来 2015] 加数

打卡信奥刷题(408)用C++信奥B3884[普及组/提高] [信息与未来 2015] 加数

时间:2024-12-11 16:33:12浏览次数:6  
标签:lfloor right 信奥 dfrac rfloor 加数 打卡 left

[信息与未来 2015] 加数

题目描述

给出一个正整数 n n n,在 n n n 的右边加入 ⌊ n 2 ⌋ \left\lfloor\dfrac n2\right\rfloor ⌊2n​⌋,然后在新数的右边
再加入 ⌊ ⌊ n 2 ⌋ 2 ⌋ \left\lfloor\dfrac{\left\lfloor\dfrac n2\right\rfloor}2\right\rfloor ​2⌊2n​⌋​ ​,一直这样进行下去,直到加入的数为 0 0 0 为止(注意, 0 0 0 不应当被加入)。

求加数结束后新数的长度。

输入格式

一行一个整数 n n n。

输出格式

一行一个整数,为加数结束后新数的长度。

样例 #1

样例输入 #1

37

样例输出 #1

8

提示

样例解释

  • ⌊ 37 2 ⌋ = 18 \left\lfloor\dfrac{37}2\right\rfloor=18 ⌊237​⌋=18,加到 n n n 的右边成为 3718 3718 3718;
  • ⌊ 18 2 ⌋ = 9 \left\lfloor\dfrac{18}2\right\rfloor=9 ⌊218​⌋=9,加到新数的右边成为 37189 37189 37189;
  • ⌊ 9 2 ⌋ = 4 \left\lfloor\dfrac{9}2\right\rfloor=4 ⌊29​⌋=4,加到新数的右边成为 371894 371894 371894;
  • ⌊ 4 2 ⌋ = 2 \left\lfloor\dfrac{4}2\right\rfloor=2 ⌊24​⌋=2,加到新数的右边成为 3718942 3718942 3718942;
  • ⌊ 2 2 ⌋ = 1 \left\lfloor\dfrac{2}2\right\rfloor=1 ⌊22​⌋=1,加到新数的右边成为 37189421 37189421 37189421;
  • ⌊ 1 2 ⌋ = 0 \left\lfloor\dfrac12\right\rfloor=0 ⌊21​⌋=0,加数结束,最后得到的数是一个 8 8 8 位数。

数据范围

1 ≤ n ≤ 1 0 5 1\le n\le10^5 1≤n≤105。

C++实现

#include
using namespace std;

int main(){
ios::sync_with_stdio(false);
int n;
cin>>n;
string ans=to_string(n);
while(n){
int t=n/2;
if(t>0){
ans = ans+to_string(t);
}
n=n/2;
}
cout<<ans;
return 0;
}

在这里插入图片描述

后续

接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

标签:lfloor,right,信奥,dfrac,rfloor,加数,打卡,left
From: https://blog.csdn.net/rogeliu/article/details/144402665

相关文章

  • Java学习打卡-Day8
    抽象类与接口抽象方法只有声明,没有具体的实现。必须用abstract关键字进行修饰。抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),默认情况下为public。抽象类包含抽象方法的类。只是用abstract修饰的话也是抽象类。可......
  • 20241209打卡
    UML:现代软件开发中的建模利器引言在现代软件开发过程中,随着系统复杂度的增加,如何高效地描述、设计和沟通系统架构变得尤为重要。统一建模语言(UnifiedModelingLanguage,UML)作为一种图形化建模语言,提供了一种标准化的方法来可视化、构建和记录软件系统的结构和行为。本文将围绕UM......
  • 考研打卡(40)
    开局(40)开始时间 2024-12-09 19:54:44结束时间 2024-12-09 20:38:32学了两个小时,感觉学不完了,怎么是这么多数据结构对于一棵具有n个节点、度为4的树来说_________(中国农业大学2013年)A树的高度至多是n-3B树的高度至多是n-4C第i层上至多有4*(i-1)个节点D至少在某......
  • 每日力扣打卡143.重排链表
    题目:给定一个单链表L的头节点head,单链表L表示为:L0→L1→…→Ln-1→Ln请将其重新排列后变为:L0→Ln→L1→Ln-1→L2→Ln-2→…不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例1:输入:head=[1,2,3,4]输出:[1,4,2,3]示......
  • 打卡信奥刷题(382)用C++信奥B3693[普及组/提高] 数列前缀和 4
    数列前缀和4题目背景这次不是数列的问题了。题目描述给定一个nnn行mm......
  • 力扣打卡8:最长上升子序列
    链接:300.最长递增子序列-力扣(LeetCode)本题我开始想到的是dp,复杂度为O(n^2),这也是很经典的解法。看到进阶解法可以O(nlogn),想到可能是要用到二分,但是,我想到的是和map排序,再二分查找第一个比当前值小的数,再找比它小的所有数,中维护max序列,再塞到map中,可惜严格来讲还是O(n^2)......
  • 算法刷题打卡DFS深度搜索
    DFS概要:    要想学会深度优先搜索的题目,首先需要知道他的代码原理,适用场景基本原理:    DFS是基于遍历,搜索树,图的算法,通过从根节点(或任意起始节点)开始,沿着每个分支深入访问节点,直到到达叶子节点或没有未访问的邻居节点为止,然后回溯到上一个节点,继续搜索其他......
  • 力扣每日打卡 92.反转链表II
    题目:给你单链表的头指针head和两个整数left和right,其中left<=right。请你反转从位置left到位置right的链表节点,返回反转后的链表。示例:输入:head=[1,2,3,4,5],left=2,right=4输出:[1,4,3,2,5]提示:链表中节点数目为n1<=n<=500-500<=Node.......
  • 信奥赛CSP-J复赛集训(dfs专题)(11):洛谷P1036:[NOIP2002 普及组] 选数
    信奥赛CSP-J复赛集训(dfs专题-刷题题单及题解)(11):洛谷P1036:[NOIP2002普及组]选数题目描述已知nnn个整数x......
  • 信奥赛CSP-J复赛集训(dfs专题)(12):洛谷P2404:自然数的拆分问题
    信奥赛CSP-J复赛集训(dfs专题-刷题题单及题解)(12):洛谷P2404:自然数的拆分问题题目描述任何一个大于111的自然数n......