一:不用中间变量交换a b值。
分析:
a=a+b; #将a b的和赋值给a
b=a-b; #a的值已经发生变化,并且保存了和值,因此这里要只能对b进行求值,不能改变a的值。
a=a-b; #同理求得a值。
另一种解法:
a=a^b
b=a^b
a=a^b
^ 异域: a^b === a & ~b
完数:
一个数的所有因子(不包括自身)相加等于自身,则该数就是完数。如6的因子是1 2 3, multiply(1,2,3) == sum(1,2,3)
/**
* 取得所有因子(不包括1和自身)
* @param num
* @return
*/
private List<Integer> findAllFactor(int num)
{
List<Integer> list = new ArrayList<Integer>();
boolean found = false;
for (int i = 2; i <= Math.sqrt(num); i++)
{
if (num % i == 0)
{
found = true;
list.add(i);
list.addAll(this.findAllFactor(num / i));
break;
}
}
if (!found)
{
list.add(num);
}
return list;
}
测试了下,只有6是完数。
分享到:
相关推荐
在程序中实现交换两个数的功能并不复杂,但如果不使用中间变量,需要动一下脑筋。在本文介绍了两个方法(其实原理都是一个)。其基本原理是数的中和。也是说,通过某种运算(二元运算)将a和b两个数变成一个数,并...
编一程序,使用scanf()函数输入变量a,b的值,将a,b的值互换后,再输出a,b的值。.c
不用第三方变量交换两数的值 不用第三方变量交换两数的值 不用第三方变量交换两数的值
示例代码:不经过中间变量交换两个数的值。 附带代码注释
代码如下: //by cloudgamer var a = 33,b=44 a=[a,b] b=a[0] a=a[1] 代码如下: //by Mr.司马 var a = 23,b=454; a = {a:b,b:a}; b = a.b; a = a.a; 评:1、2种解法是普遍解,只能交换数字,而3、4种则适用性更
Dim x As Long, y As Long, z As Long x = 11 y = 22 Print "x和y的值" Print "x="; x, "y="; y Print Print "x和y的值互相交换后各自的值" z = x x = y y = z Print "x="; x, "y="; y
给两个整型变量赋值,然后交换两个变量的值,最后输出交换后的变量值。
//得到输入的值,保存到变量a //Scanner是jdk类库中的类 //保存在java.util包下 int a = new Scanner(System.in).nextInt(); System.out.print("输入整数b:"); int b = new Scanner(System.in).nextInt(); ...
题目要求:将数a、b的值进行交换,并且不使用任何中间变量。 程序如下: #include void swapValue1(int &a, int &b) //使用中间变量交换数据 { int temp = a; a = b; b = temp; } void swapValue2(int &a, ...
易语言源码易语言文本变量交换源码.rar 易语言源码易语言文本变量交换源码.rar 易语言源码易语言文本变量交换源码.rar 易语言源码易语言文本变量交换源码.rar 易语言源码易语言文本变量交换源码.rar 易语言源码...
1.使用加减法; var a=1; var b=2; a=a+b; b=a-b;...a=a-b;...2.使用乘除法(乘除法更像...以上所述是小编给大家介绍的JS实现不用中间变量temp 实现两个变量值得交换方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言
易语言交换变量值源码,交换变量值,交换数据_整数,交换数据_文本,交换数据_字节集,交换数据_支持库_整数,交换数据_支持库_文本,交换数据_支持库_字节集
本文主要描述,如何不使用中间值,将两个变量的值进行交换。 一、普通做法 var a = 1, b = 2, tmp; tmp = a; a = b; b = tmp; 普通的做法就是声明多一个临时变量tmp,进行数据交换过程中的缓存。这样的做法直观...
以前闲聊的时候朋友说有一种方法,不需要中间变量,就可以将两个变量的内容交换。
这篇文章总结了七种办法来交换a和b的变量值 var a = 123; var b = 456; 交换变量值方案一 最最最简单的办法就是使用一个临时变量了,不过使用临时变量的方法实在是太low了 var t; t = a; a = b; b = t; 首先把a的...
一般都是借助第三个中间变量来实现原来两个变量的值交换,但是这道题却要求不能使用中间变量,这对于初学者来说也算是一个难题了。网上找到的几种方法总结如下:复制代码 代码如下://字符串版本 结合使用substr,...
变量交换的几种方法【不使用中间变量+位运算】
1.定义两个int 类型的变量 a 和 b ,分别打印输出a与b的‘加/减/乘/除/取余’的结果。2.定义一个int类型的变量 i ,输出这个...7.任意定义两个int类型的变量a=13和b=7,交换a和b的值,并打印交换后的结果(两种方法)
求交换变量值的代码:要求编写一个函数实现两个整型变量交换彼此的数值。