1 编写一个函数,计算两个数字的和、差、积、商
要求:使用传参的形式
function demo(num1, num2) {
console.log(num1 + num2);
console.log(num1 – num2);
console.log(num1 * num2);
console.log(num1 / num2);
}
2 编写一个函数,计算三个数字的大小,按从小到大顺序输出
function demo(num1, num2, num3) {
Math.pow()
var max = Math.max(num1, num2, num3);
console.log(max);
var min = Math.min(num1, num2, num3);
console.log(min);
}
demo(1, 22, -3);
3 编写任意个数字的求和、差、积、商的函数
function demo() {
定义一个和
var a = arguments[0];
定义一个差
var b = arguments[0];
定义一个积
var c = arguments[0];
定义一个商
var d = arguments[0];
因为参数的个数不定 所以形参没法写 只好使用arguments
for (var i = 1; i < arguments.length; i++) {
a = a + arguments[i];
b = b - arguments[i];
c = c * arguments[i];
d = d / arguments[i];
}
console.log("和为" + a);
console.log("差为" + b);
console.log("积为" + c);
console.log("商为" + d);
}
demo(10, 44, 89, 3); 本次调用的时候 函数内部的arguments => [10, 44, 89, 3] arguments[0] => 10 arguments[1] => 44 arguments[2] => 89 arguments[3] => 3
4 编写一个函数求一个数字是否是质数
function demo(num) {
var isZ = true;
// 因为质数的定义是除了1和自己之外 所以范围就是从2 到 nu'm-1
for (var i = 2; i < num; i++) {
判定范围内的这个数是否可以整除num
if (num % i === 0) {
如果能够整数 将标记设置为false
isZ = false;
既然出现了整除的数字 不必再循环
break;
}
}
判定 是否是质数
return isZ;
}
var result2 = demo(11);
if (result2) {
console.log(11 + "是质数");
} else {
console.log(11 + "不是质数");
}
var result = demo(333);
if (result) {
console.log(333 + "是质数");
} else {
console.log(333 + "不是质数");
}
var result1 = demo(11);
if (result1) {
console.log(11 + "是质数");
} else {
console.log(11 + "不是质数");
}
分析: demo函数的作用是判定一个数是否是质数
借助一个变量 isZ
如果把isZ定义在全局中 那么当函数执行的时候,访问的isZ就是全局中的isZ
而且我们这个代码 一旦将isZ设置为false 就再也不会将它重新设置为true
所以 在遇见第一个非质数之前 判定结果是对的
一旦遇见了第一个非质数 就会把全局中的isZ设置为false
以后的执行过程中,就算再遇见质数 得到的结果也是值为false的isZ变量
所以一定要把isZ变量放在函数内部
5 编写一个函数求两个数字之间有多少个质数
例如:fn(100, 200) ,在控制台输出 100 - 200 之间的所有质数
function check(num) {
var isZ = true;
// 因为质数的定义是除了1和自己之外 所以范围就是从2 到 nu'm-1
for (var i = 2; i < num; i++) {
判定范围内的这个数是否可以整除num
if (num % i === 0) {
如果能够整数 将标记设置为false
isZ = false;
既然出现了整除的数字 不必再循环
break;
}
}
判定 是否是质数
return isZ;
}
function demo(start, end) {
for (var i = start; i < end; i++) {
只要有一个方式能够判定当前循环到的这个数字是否是质数 我们就可以输出1次
if (check(i)) {
console.log(i + "是质数");
}
}
}
demo(3, 999);
6 编写一个函数,计算任意两个数字之间所能组成的奇数个数,数字必须是个位数
比如: 计算0-3之间能组成的奇数个是01、03、11、13、21、23、31、33
function demo(start, end) {
分析:start - end之间的数 都可以作为十位数 start - end之间 可以作为个位数的只有之间的奇数
循环 第一次
for (var i = start; i <= end; i++) {
定义一个数 这个数就是十位数
var shi = i * 10;
循环 第二次 用于生成个位数 因为个位数只能够是奇数 所以我们可以强行取巧 让j从1开始 每一次的递增 +2
for (var j = start; j <= end; j++) {
if (j % 2 != 0) {
var ge = j;
console.log(shi + ge);
}
}
}
}
demo(4, 9);
7 某个公司采用公用电话传递数据数据是四位的整数,在传递过程中是加密的
加密规则如下:
每位数字都加上5
然后用除以10的余数代替该数字
再将第一位和第四位交换
第二位和第三位交换
请编写一个函数,传入原文,输出密文
1 5 7 9
6 10 12 14
6 0 2 4
4 0 2 6
4 2 0 6
定义一个函数
function demo(num) {
获取千位
var t = parseInt(num / 1000);
获取百位
var h = parseInt(num % 1000 / 100)
获取十位
var s = parseInt(num % 100 / 10);
获取个位
var g = num % 10;
每一个位数的数之+5 之后再对十取余
t = (t + 5) % 10;
h = (h + 5) % 10;
s = (s + 5) % 10;
g = (g + 5) % 10;
交换位置
var temp = t;
t = g;
g = temp;
交换位置
var temp1 = h;
h = s;
s = temp1;
console.log(t * 1000 + h * 100 + s * 10 + g);
return t * 1000 + h * 100 + s * 10 + g;
}
执行函数
demo(1579);