所有数的源头是奇数和2

2024-02-20 09:52
文章标签 所有 奇数 源头

本文主要是介绍所有数的源头是奇数和2,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

cFround928div4的E题

题目解析

解析有少许条件省略,先看完题目再看解析。
该题给你n张卡片,让你每次从左到右放置数字为m倍的奇数(从1,3,5等等逐渐增加直到i是使m*(2*i-1)小于n的最大i后停止)(m也从1逐渐增加)
例如,n=22;则先放置1 3 5 7 9 11 13 15 17 19 21,接着放2 6 10 14 18 22,接着放,4 12 20,接着放,8最后放16
解释:
一开始看作(1~22)1取奇数11个,剩下11个
然后看作(1~11)2取奇数6个,然后分别2,剩下五个
再看作(1~5)2取奇数3个,分别4,剩下两个
最后看作(1~2)2取奇数1个并且8,剩下一个1
16,取1并且乘16。

代码解析

同样也是看jiangly的代码有的思路,大哥受我一拜。

#include "bits/stdc++.h"#define For for(int i=1;i<=n;i++)
#define Whole(x) for(auto item:x)
using namespace std;
using ll = long long;
const int N = 2e5 ;
vector<int> arr(N),brr(N);
void inline solve() {int n,k;cin>>n>>k;int tmp=1;while(1){int cot=(n+1)>>1;//计算此时剩下的数组中的相对奇数有多少//相对奇数指,如果这一堆数都是偶数,那么同时除以二,直到,不都是偶数,那么剩下来的一群数就叫做这一堆数数中的相对奇数//而得到相对奇数过程中所除以得最终数叫做,这次得相对指标,例如2,4,6,8除以2得到1,2,3,4可知相对奇数为2,4,相对指标为2if(k<=cot){cout<<(2*k-1)*tmp<<endl;//tmp指的是每次循环求相对奇数的相对指标的乘积return;}k-=cot;tmp*=2;//每次的相对指标必然为2n/=2;//这样一来,n指的就是去掉了相对奇数之后所剩下了多少数字,同时得到了一堆新数,进而再次循环求这群薪数中的相对奇数}
}int main() {ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int num = 1;cin >> num;while (num--) {solve();}return 0;
}

思考

由上述抽丝剥茧的把一层一层的奇数去掉,我仿佛意识到,所有的数都是由奇数和2得来的,任何一个偶数都是可以通过某一个奇数乘以若干个2得到。

这篇关于所有数的源头是奇数和2的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/727829

相关文章

在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码

《在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码》在MyBatis的XML映射文件中,trim元素用于动态添加SQL语句的一部分,处理前缀、后缀及多余的逗号或连接符,示... 在MyBATis的XML映射文件中,<trim>元素用于动态地添加SQL语句的一部分,例如SET或W

C#实现获得某个枚举的所有名称

《C#实现获得某个枚举的所有名称》这篇文章主要为大家详细介绍了C#如何实现获得某个枚举的所有名称,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下... C#中获得某个枚举的所有名称using System;using System.Collections.Generic;usi

通过C#获取PDF中指定文本或所有文本的字体信息

《通过C#获取PDF中指定文本或所有文本的字体信息》在设计和出版行业中,字体的选择和使用对最终作品的质量有着重要影响,然而,有时我们可能会遇到包含未知字体的PDF文件,这使得我们无法准确地复制或修改文... 目录引言C# 获取PDF中指定文本的字体信息C# 获取PDF文档中用到的所有字体信息引言在设计和出

Collection的所有的方法演示

import java.util.ArrayList;import java.util.Collection;import java.util.Iterator;public class TestCollection {/*** @param args* Collection的所有的方法演示* 此程序没有使用泛型,所以可以添加任意类型* 以后如果写到泛型会补充这一方面的内容*/public s

Temu官方宣导务必将所有的点位材料进行检测-RSL资质检测

关于饰品类产品合规问题宣导: 产品法规RSL要求 RSL测试是根据REACH法规及附录17的要求进行测试。REACH法规是欧洲一项重要的法规,其中包含许多对化学物质进行限制的规定和高度关注物质。 为了确保珠宝首饰的安全性,欧盟REACH法规规定,珠宝首饰上架各大电商平台前必须进行RSLReport(欧盟禁限用化学物质检测报告)资质认证,以确保产品不含对人体有害的化学物质。 RSL-铅,

获取所有classpath指定包下类的所有子类

1.问题 开发过程中,有时需要找到所有classpath下,特定包下某个类的所有子类,如何做到? 2. 实现 比较常见的解决方案是自己遍历目录,查找所有.class文件。 下面这个方法使用spring工具类实现,简化过程,不再需要自己遍历目录 /*** 获取在指定包下某个class的所有非抽象子类** @param parentClass 父类* @param packagePat

为libpng不同架构创建构建目录、编译、安装以及合并库文件的所有步骤。

好的。既然你已经有了 libpng 的源代码,并且当前处在它的目录下,我们可以简化脚本,不再需要下载和解压源代码这一步。以下是修改后的脚本:```sh#!/bin/bash# 当前目录即 libpng 源代码目录LIBPNG_SRC_DIR=$(pwd)# 设置工作目录WORK_DIR=$(pwd)/libpng_buildBUILD_DIR_X86_64="$WORK_DIR/build

Mybatis logj日志配置问题 以及日志相关的所有问题

使用Mybatis的时候,有些时候能输出(主要是指sql,参数,结果)日志。有些时候就不能。 无法输出日志的时候,无论怎么配置log4j,不管是properties的还是xml的,都不起作用。 有些时候,我们没做什么配置就能输出日志.... 这是一个让无数人烦躁的问题。其实解决问题很容易(我过了这么久才解决,以前都用拦截器输出)。 这是一个普大喜奔的日子,让我们一起来看看如何解决mybat

力扣 797. 所有可能路径【DFS】

1. 题目 2. 代码 DFS , 直接见代码 class Solution {public:vector<int> path;vector<vector<int>> res; // 结果集void dfs(vector<vector<int>>& graph, int cur, int n){// 找出所有从节点 0 到节点 n-1 的路径// 下标从 0 开始的if (

Linux下删除某个文件之外的其他所有文件

在windows下要删除一个文件夹下除某个文件之外的其他所有文件很简单,选择这个文件,再反选即可。Linux下可能很多人不知道如何实现这种效果,这里分享2种方法: 1 使用xargs ls | grep -v xxx | xargs rm -r 使用时将xxx替换成要保留的文件名即可。 如果有相似的文件名,可以使用正则表达式匹配完整的文件名,如: 有两个相似的文件名33和331,此时要保留