1.任意输入一个正整数,判断这个数的位数?
var num = parseInt(prompt("请输入一个数"));
var sum = 0;
while (num>0){
sum =sum+1;
num = parseInt(num/10);
}
alert(sum);
2.编写函数,功能是将三个数按照从小到大顺序输出
function pai(a,b,c){
var temp;
if(a>b){
temp=a;
a=b;
b=temp;
}
if(a>c){
temp=a;
a=c;
c=temp;
}
if(b>c){
temp=b;
b=c;
c=temp;
}
console.log(a,b,c);
}
pai(6,7,4);
.3输出:100可以拆成哪两个素数的和
function isPrimeNumber(num){
//是素数返回true,否则返回false
for (var i = 2; i < num; i++) {
if(num%i == 0){
return false;
}
}
return true;
function box(){
for (var i = 1; i < 50; i++) {
if(isPrimeNumber(i)){//调用判断是否是素数的函数
//console.log(i);
var s2 = 100-i;
if(isPrimeNumber(s2)){
console.log(s2,i);
}
}
}
}
box();
4.函数实现:输出1—3之间能组成的奇数个数,并输出这些数
要求 : 组成的数是一个两位数,个位数!=十位数
组成: 13 21 23 31 共4个
1 2 3
1 2 3
function box(){
for (var i = 1; i <= 3; i++) {
for (var j = 1; j <= 3; j++) {
if(i!=j){
var str = ""+i+j;
//console.log(str);
if(str%2 == 1){
console.log(str);
}
}
}
}
}
box();
.函数的递归调用案例
1.用函数实现一个数的循环,输出100到1;
function box(a){
if(a==0){
return;
}
console.log(a);
a--;
box(a);
}
box(100)
2.普通函数实现带返回值的从1-100累加的和;
function box(a){
if(a==0){
return 0;
}
return a+box(a-1);
}
alert(box(100));
3.递归实现1--100以内所有偶数的和
function box(a){
if(a==0){
return 0;
}
if(a%2==0){
return a+box(a-2);
}
}
alert(box(100));
4.递归实现一个数的阶乘
function box(a){
if(a==1){
return 1;
}
return a*box(a-1);
}
alert(box(5));
5.递归实现斐波那契数列的第n项
// 1 1 2 3 5 8 13 21 34....
// 第一项是0 第二项是1 后面每一项是前面两项的和
F(0)=1,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)
function box(a){
if(a==1){
return 1;
}
if(a==2){
return 1;
}
if(a>2){
return box(a-1)+box(a-2);
}
}
alert(box(4));
1,如果一个数恰好等于它的真因数之和(就是不包括本身),则称该数为“完全数” perfect number。请列出2~10000的所有完全数
第一种:function num(){
for(var i=2;i<=10000;i++){
var sum=0;
for(var j=1;j<i;j++){
if(i%j==0){
sum=sum+j;
}
}
if(sum==i){
console.log(i);
}
}
}
num();
第二种:
//1.求一个数的所有真因数的和
/*function isPerfectNumAdd(num){
var sum = 0;
for (var i = 1; i < num; i++) {
if(num%i == 0){
sum += i;
}
}
return sum;
}*/
//2.通过一个数的所有真因数的和来与当前这个数对比,如果相等说明这个数是一个完全数。
//alert(isPerfectNumAdd(7));
/*function getPerfectNum(){
for (var i = 2; i <= 10000; i++) {
if(isPerfectNumAdd(i) == i){
console.log(i)
}
}
}
getPerfectNum();
第三种:函数递归调用
function getPerfectNum(num){
if(num==10001){
return;
}
var sum = 0;
for (var i = 1; i < num; i++) {
if(num%i == 0){
sum += i;
}
}
if(sum == num){
console.log(num);
}
return getPerfectNum(num+1);
}
getPerfectNum(2);
3,编写一个函数 :实现计算任意一个数的各个位数的和
//例如 : 234 位数和为 9
var num=parseInt(prompt("请输入一个数"));
function fnSum(num){
var sum = 0;
while( num >0 ){
sum += num % 10; //取出个位数
num = parseInt( num/10 );
}
return sum;
}
var s = fnSum();
alert(s);