所有数的源头是奇数和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

相关文章

Python实现将MySQL中所有表的数据都导出为CSV文件并压缩

《Python实现将MySQL中所有表的数据都导出为CSV文件并压缩》这篇文章主要为大家详细介绍了如何使用Python将MySQL数据库中所有表的数据都导出为CSV文件到一个目录,并压缩为zip文件到... python将mysql数据库中所有表的数据都导出为CSV文件到一个目录,并压缩为zip文件到另一个

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

使用C语言实现交换整数的奇数位和偶数位

《使用C语言实现交换整数的奇数位和偶数位》在C语言中,要交换一个整数的二进制位中的奇数位和偶数位,重点需要理解位操作,当我们谈论二进制位的奇数位和偶数位时,我们是指从右到左数的位置,本文给大家介绍了使... 目录一、问题描述二、解决思路三、函数实现四、宏实现五、总结一、问题描述使用C语言代码实现:将一个整

使用Navicat工具比对两个数据库所有表结构的差异案例详解

《使用Navicat工具比对两个数据库所有表结构的差异案例详解》:本文主要介绍如何使用Navicat工具对比两个数据库test_old和test_new,并生成相应的DDLSQL语句,以便将te... 目录概要案例一、如图两个数据库test_old和test_new进行比较:二、开始比较总结概要公司存在多

在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