首页 > 其他分享 >【递归】小q的数列

【递归】小q的数列

时间:2024-10-02 15:22:15浏览次数:9  
标签:数列 递归 pow ll 显式 long ans 浮点数

https://ac.nowcoder.com/acm/contest/21763/1002
pow(2, ans) 计算的是2的ans次幂,但是 pow() 函数返回的是 double 类型的结果。由于 pow() 函数主要用于浮点数计算,它返回浮点数结果,而后你可能需要对该结果进行整数操作。如果不进行显式类型转换,这个浮点数结果会丢失精度,特别是在大数情况下。这就是为什么需要将 pow() 的结果显式转换为 long long 类型(即 ll),以避免潜在的精度丢失并确保计算结果是整数。

为什么要使用 (ll) 显式转换
浮点数在表示大整数时可能不精确,尤其是当指数较大时。例如,pow(2, 50) 的返回值为 1125899906842624.0,

要避免使用 pow() 并且使用位运算来计算 2^n,可以通过左移操作(<<)来实现。位运算中的左移操作是非常高效且精确的。具体来说,1 << n 就相当于 2^n。因为在二进制表示中,左移操作会将数字左移 n 位,相当于乘以 2^n。
cout << f(n) << " " << ( (1LL << ans) - 1 ) << endl;
原代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

ll f(ll n) {
    if(n == 0 || n == 1) { 
        return n;
    }
    return f(n/2) + n%2;
}

int main() {
    int t;
    cin >> t;

    while (t--) {
        ll n;
        cin >> n;
        ll sum = 0;
        ll ans = f(n);
        cout<<f(n)<<" "<<(ll)pow(2,ans)-1<<endl;
    }

    return 0;
}

标签:数列,递归,pow,ll,显式,long,ans,浮点数
From: https://www.cnblogs.com/peterzh/p/18444771

相关文章

  • 鹏哥C语言62---第9次作业:函数递归练习
    #define_CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<string.h>//-------------------------------------------------------------------------------------------第九次作业 函数递归等//----------------------------------------------------------------......
  • 11918 骰子|| 深搜 递归
    解决思路 深度优先搜索(DFS):使用DFS枚举所有可能的骰子点数组合。 剪枝:在DFS过程中,如果当前点数和已经超过 sum 或者剩余骰子无法达到 sum,则剪枝。 字典序输出:由于DFS的递归顺序,天然保证了字典序输出。#include<bits/stdc++.h>#definelllonglongus......
  • 初学Java基础Day08 方法,方法的递归,方法的重载
    一,方法1.概念:        特定功能的代码块2.好处:        减少代码的冗余3.分类:1.无参数无返回值的方法2.带参数的方法3.带返回的方法4.理解:        参数是方法调用时传入的数据,返回值是方法执行完毕后返回的数据1.无参数无返回的方法//语法结......
  • 基于递归下降解析器的四则运算题生成器
    结对项目本次项目的GitHub位置:https://github.com/EIiasK/Eliask/tree/main/3122004566/Exercise_Generator项目成员及github地址郭人诵github地址:https://github.com/EIiasK/Eliask何其浚github地址:https://github.com/hugh143/hugh143这个作业属于哪个课程......
  • 基于SpringBoot 应用Stream流+递归 实现多级分类
    SpringBoot->Stream流实现步骤:先查询所有级联的数据,然后通过Java8 Stream 流来比较和判断,最终生成有顺序的级联数据实体类:@DatapublicclassAddr{/***主键id*/privateLongaddrId;/***名称*/privateStringaddrNam......
  • 南沙csp-j/s一对一家教 解一本通题: 1937:【06NOIP普及组】数列
    ​【题目描述】给定一个正整数k(3≤k≤15),把所有k的方幂及所有有限个互不相等的k的方幂之和构成一个递增的序列,例如,当k=3时,这个序列是:1,3,4,9,10,12,13,…请你求出这个序列的第N项的值(用10进制数表示)。例如,对于k=3,N=100,正确答案应该是981。【输入】只有1行,为2个正整数,用一个......
  • 非递归快速构建树-注解版
    importcom.fasterxml.jackson.core.JsonProcessingException;importcom.fasterxml.jackson.databind.ObjectMapper;importjava.lang.reflect.Field;importjava.util.ArrayList;importjava.util.LinkedHashMap;importjava.util.List;importjava.util.Map;/**......
  • python 递归锁、信号量、事件、线程队列、进程池和线程池、回调函数、定时器
    一、python线程死锁与递归锁死锁现象所谓死锁:是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程代码示例:fromthreadingimport......
  • 9.26递归函数
    递归函数的定义和格式递归是一种常用的解决问题的方法,特别适用于解决可以被分解为类似子问题//递归函数:在函数内部再次调用自己//解决可以被分解为类似子问题的问题//组成://1.基本情况最小问题的答案//2.递归情况调用自己去解决子问题objectTestFucRecursive{//......
  • 时序预测 | Matlab实现SSA-TCN麻雀搜索算法优化时间卷积网络时序预测-递归预测未来数
    时序预测|Matlab实现SSA-TCN麻雀搜索算法优化时间卷积网络时序预测-递归预测未来数据(单输入单输出)目录时序预测|Matlab实现SSA-TCN麻雀搜索算法优化时间卷积网络时序预测-递归预测未来数据(单输入单输出)预测效果基本介绍程序设计参考资料预测效果基本介绍1.Matlab实现SSA-TCN......