把1316这个数表示成两个数的和,其中一个为13的倍数,另一个是11的倍数,求这两个数。
算法分析:
1316,显然1300是13的倍数,但16不是11的倍数,可以想到从1300上任意减去N个13的倍数其结果仍然是13的倍数,那么只要16加上这个减去的N个13的倍数其和是11的倍数,这两个数就解出来了,答案可能不只一个,但是我们只求一对解就可以了。
仔细观察不难发现:(16+13*3)+(1300-13*3)=1316,但是我们需要用代码实现:
代码如下:
<?php
$n=1316;
$i=0;//减去的第N个13,进行初始化为0
$y=16+13*$i;//1316分出来的16加上N个13,这里初始化为16
while($y%11!=0){//如果16加上N个13的和不能整除11
$i++;//再加一个13
$y=16+13*$i;
}
echo '$x='.($n-$y).'<br>';
echo '$y='.$y;
?>
相关推荐
-
把1316这个数表示成两个数的和,其中一个为13的倍数,另一个是11的倍数,求这两个数。
算法分析: 1316,显然1300是13的倍数,但16不是11的倍数,可以想到从1300上任意减去N个13的倍数其结果仍然是13的倍数,那么只要16加上这个减去的N个13的倍数其和是11的倍数,这两个数就解出来了,答案可能不只一个,但是我们只求一对解就可以了. 仔细观察不难发现:(16+13*3)+(1300-13*3)=1316,但是我们需要用代码实现: 复制代码 代码如下: <?php $n=1316; $i=0;//减去的第N个13,进行初始化为0 $y=16+13*$i;//1316分出
-
如何求连续几个数之和的最大值
给定一组数,有正有负,求连续的几个数之和的最大值?并求出是从第几个数开始,第几个数结束?如果有多个序列可组成相同的最大值,则选取最开始的一个序列.(注:这两天看<编程之美>,发现2.14节,求数组的子数组之和的最大值,跟这个题十分相似,但是没有要求求出开始喝结束的位置,只要求求出最大值,解题思路跟下面的代码相似,但只用了两个变量,没有用数组,做到时间复杂度O(n),空间复杂度O(1))用程序设计实现.我实现了一种方法,跟大家分享一下,如果朋友你有更好的方法来解决这个问题,希望你能回复,与大家分
-
Java解决计算相邻两个数的最大差值的问题
hello,今天给大家带来一道算法题.这道算法题,是我目前为止,见过最难的一道题.那么到底是怎样的一道算法题呢?如下: 题目:给定一个数组, 求如果排序之后, 相邻两数的最大差值. 要求时间复杂度O(N), 且要求不能用非基于比较的排序. 我查了一下,暂时没有找到一个在线OJ的链接,只能自己写一个对数器,手动测试了. 当初我看到这个题目的时候,说这怎么可能呢?在一个无序的数组中,求相邻两个数据的最大差值.可是我们都知道,现在基于比较的排序算法,最快也只能够达到O(N*logN)的水平,而题目明确
-
javascript中的=等号个数问题两个跟三个有什么区别
一个等号就是个赋值的作用,主要问题在于两个跟三个等号的区别. javaScript中两个等于号和三个等于号之间的区别 一言以蔽之:==先转换类型再比较,===先判断类型,如果不是同一类型直接为false. ===表示恒等于,比较的两边要绝对的相同 alert(0 == ""); // true alert(0 == false); // true alert("" == false); // true alert(0 === ""); // fa
-
C#获取两个数的最大公约数和最小公倍数示例
最大公约数:指两个或多个整数共有约束中最大的一个. 最小公倍数:如果有一个自然数a能被自然数b整除,则称a为b的倍数,b为a的约数,对于两个整数来说,指该两数共有倍数中最小的一个. 复制代码 代码如下: /// <summary>/// 最大公约数/// </summary>/// <param name="a"></param>/// <param name="b"></param>/// &
-
Java计算一个数加上100是完全平方数,加上168还是完全平方数
题目:一个整数,它加上100后是一个完全平方数,加上168又是一个完全平方数,请问该数是多少? 程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果.请看具体分析: 程序设计: public class test { public static void main (String[]args){ long k=0; for(k=1;k<=100000l;k++) if(Math.floor(Math.sqrt(k+100))=
-
C语言判断一个数是否是2的幂次方或4的幂次方
快速判断一个数是否是2的幂次方,若是,并判断出来是多少次方! 将2的幂次方写成二进制形式后,很容易就会发现有一个特点:二进制中只有一个1,并且1后面跟了n个0: 因此问题可以转化为判断1后面是否跟了n个0就可以了. 如果将这个数减去1后会发现,仅有的那个1会变为0,而原来的那n个0会变为1:因此将原来的数与去减去1后的数字进行与运算后会发现为零. 最快速的方法: (number & number - 1) == 0 原因:因为2的N次方换算是二进制为10--0这样的形式(0除外).与上自己-1的
-
如何判断一个数是否为2的幂次方?若是,并判断出来是多少次方?
将2的幂次方写成二进制形式后,很容易就会发现有一个特点:二进制中只有一个1,并且1后面跟了n个0: 因此问题可以转化为判断1后面是否跟了n个0就可以了.如果将这个数减去1后会发现,仅有的那个1会变为0,而原来的那n个0会变为1:因此将原来的数与去减去1后的数字进行与运算后会发现为零.最快速的方法:(number & number - 1) == 0原因:因为2的N次方换算是二进制为10--0这样的形式(0除外).与上自己-1的位数,这们得到结果为0.例如.8的二进制为1000:8-1=7,7的二
-
C语言中字符的输入输出以及计算字符个数的方法详解
C语言字符输入与输出 标准库提供的输入/输出模型非常简单.无论文本从何处输入,输出到何处,其输入/输出都是按照字符流的方式处理.文本流是由多行字符构成的字符序列,而每行字符则由 0 个或多个字符组成,行末是一个换行符.标准库负责使每个输入/输出流都能够遵守这一模型.使用标准库的 C 语言程序员不必关心在程序之外这些行是如何表示的. 标准库提供了一次读/写一个字符的函数,其中最简单的是 getchar 和 putchar 两个函数.每次调用时,getchar 函数从文本流中读入下一个输入字符,并将
-
C++实现LeetCode(149.共线点个数)
[LeetCode] 149. Max Points on a Line 共线点个数 Given n points on a 2D plane, find the maximum number of points that lie on the same straight line. Example 1: Input: [[1,1],[2,2],[3,3]] Output: 3 Explanation: ^ | | o | o | o +------------->
随机推荐
- VB6实现连接Access数据库的ADODB代码实现方法
- textarea 在IE和FF下换行无法正常显示的解决方法
- 利用JS轻松实现获取表单数据
- 对SpringMVC的@RequestParam的解释
- javascript时间排序算法实现活动秒杀倒计时效果
- javascript 子窗体父窗体相互传值方法
- 最全面的JS倒计时代码
- Asp.net cookie的处理流程深入分析
- DevExpress之ChartControl用法实例总结
- C语言中的字符(char)详细讲解
- php抓取页面的几种方法详解
- 一些php技巧与注意事项分析
- PHP判断远程url是否有效的几种方法小结
- python实现发送邮件功能
- Laravel框架中实现使用阿里云ACE缓存服务
- 全面了解Java中的内部类和匿名类
- Javascript中的arguments与重载介绍
- 用模版生成HTML的的框架jquery.tmpl使用详解
- Linux下日志按日分割的shell
- 用jquery实现的模拟QQ邮箱里的收件人选取及其他效果(一)