判断给定的整数n能否表示成连续的m(m>1)个正整数之和
#include<stdio.h>
int main(){
//如果是奇数,肯定满足条件
int num;
scanf("%d",&num);
if(num%==){
printf("%s","YES");
return ;
}
//如果是偶数
/**
*
* 设输入的数值n为奇数,2k+1,那么奇数肯定能化成k+k+1,所以肯定是输出yes。
如果输入的数值n为偶数,要稍微复杂些。
反证,假设这个偶数能被换成连续自然数相加形式。
那么可以有x+(x+1)+(x+2)+……+(x+k) == n,
用等差数列求和公式,求出(2x+k)(k+1)/2 == n,
若k+1为偶数,则2x+k为奇数,若k+1为奇数,则2x+k为偶数,所以必定有一奇数和一个偶数。
我们把公式转换成(2x+k)(k+1) == 2n,因为2n是偶数,左边(2x+k)(k+1)一定有一个数值为偶数。
等式两边不断提取因数2,如果2n可以不断提取因数2化成2^m,也就是2的幂,而等式的左边因为存在一个奇数,(2x+k)(k+1)是不能化成2^m。所以式子两边不可能相等。所以2的幂是不能转换成连续自然数相加的形式。
但是没有直接证明偶数可以拆成什么具体形式。所以这题只是钻了题目的空子,同类型的题目好像还要输出连续自然数的序列。所以这题可以直接判定n是否为2的幂即可。
* */
if((num & (num-))==){
printf("%s","NO");
}else{
printf("%s","YES");
}
return ;
}
tips:断给定的整数n能否表示成连续的m(m>1)个正整数之和.
判断给定的整数n能否表示成连续的m(m>1)个正整数之和的更多相关文章
- [CodeWars][JS]如何判断给定的数字是否整数
问题描述: We are asking for a function to take a positive integer value, and return a list of all positi ...
- for循环练习题(1 ,判断任意一个数是91的多少倍 2,编写程序实现给定一个整数判断它从0到这个整数中间出现多少次9的次数)
1 //判断任意一个数是9的多少倍 #include <stdio.h> #include <stdlib.h> int main() { printf("请输入任意 ...
- 给定一个整数N,找出一个比N大且最接近N,但二进制权值与该整数相同 的数
1,问题描述 给定一个整数N,该整数的二进制权值定义如下:将该整数N转化成二进制表示法,其中 1 的个数即为它的二进制权值. 比如:十进制数1717 的二进制表示为:0000 0110 1011 01 ...
- 图结构练习——判断给定图是否存在合法拓扑序列(dfs算法(第一个代码),邻接矩阵(前两个代码),邻接表(第三个代码))
sdut 2140 图结构练习——判断给定图是否存在合法拓扑序列 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 给定一个有向图 ...
- 五种js判断是否为整数(转)
五种js判断是否为整数类型方式 作者:snandy 这篇文章主要介绍了五种JavaScript判断是否为整数类型方式,需要的朋友可以参考下 这篇看看如何判断为整数类型(Integer),JavaS ...
- 给定一个整数,求解该整数最少能用多少个Fib数字相加得到
一,问题描述 给定一个整数N,求解该整数最少能用多少个Fib数字相加得到 Fib数列,就是如: 1,1,2,3,5,8,13.... Fib数列,满足条件:Fib(n)=Fib(n-1)+Fib(n- ...
- SDUT OJ 数据结构实验之图论十:判断给定图是否存在合法拓扑序列
数据结构实验之图论十:判断给定图是否存在合法拓扑序列 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Prob ...
- SDUT 2129 树结构练习——判断给定森林中有多少棵树
树结构练习——判断给定森林中有多少棵树 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 众 ...
- ES6-数字操作,判断是否是整数,判断最大值最小值
S中只有一种类型数,即64位(1bit 的符号位,11bits 的指数部分 ,以及52bits 的小数部分)双精度浮点数,当整数数值过大时,就会发生精度丢失. 所谓安全整数即能够唯一确定的数字,即能够 ...
随机推荐
- JavaScript 中 console 的用法 -------------------引用
1.在调试 JS 代码时,很多人倾向于使用 alert() 或者 console.log() 方法来输出信息,正如某些 Java 程序员喜欢在调试代码时使用System.out.println() 输 ...
- python学习_新闻联播文字版爬虫(V 1.0版)
python3的爬虫练习,爬取的是新闻联播文字版网站 #!/usr/bin/env python # -*- coding: utf-8 -*- ''' __author__ = 'wyf349' _ ...
- 《剑指offer》算法题第八天
今日题目(对应书上第39~42题): 数组中出现次数超过一半的数字 最小的k个数(top k,重点!) 数据流中的中位数 连续子数组的最大和 今天的题目都比较经典,特别是第2题. 1. 数组中出现次数 ...
- input获取焦点弹出系统虚拟键盘时,挡住input解决方法
Element.scrollIntoView() 方法让当前的元素滚动到浏览器窗口的可视区域内. <input type="tel" placeholder="输入 ...
- Android中关于回调概念的笔记
一.回调函数 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数.回调函数不是由该函数的实现方直接调 ...
- Linux之zookeeper开机启动
1.用cd 命令切换到/etc/rc.d/init.d/目录下 [root@bogon ~]# cd /etc/rc.d/init.d 2.用touch zookeeper创建一个文件 [root@b ...
- 20165207 Exp8 Web基础
目录 20165207 Exp8 Web基础 0. 环境配置 0.1. apache 0.2. MySQL 0.3. php 0.4. php-mysql编程库 1. 前台HTML编写静态网页 2. ...
- 搞清楚MySQL事务隔离级别
首先创建一个表 account.创建表的过程略过(由于 InnoDB 存储引擎支持事务,所以将表的存储引擎设置为 InnoDB).表的结构如下: 然后往表中插入两条数据,插入后结果如下: 为了说明问题 ...
- 【转】python 输入一个时间,获取这个时间的下一秒
原文:https://blog.csdn.net/l_d_56/article/details/84832198 输入一个时间,获取这个时间的下一秒 PS:下面代码使用于 python 2.7 tim ...
- spark streaming 5: InputDStream
InputDStream的继承关系.他们都是使用InputDStream这个抽象类的接口进行操作的.特别注意ReceiverInputDStream这个类,大部分时候我们使用的是它作为扩展的基类,因为 ...