程序员50题(JS版本)(六)

程序26:给一个不多于5位的正整数。要求:一、求它是几位数,二、逆序打印出各位数字。
var test=456;
var arr=[];
arr[0]=test%10;
arr[1]=parseInt(test%100/10);
arr[2]=parseInt(test%1000/100);
arr[3]=parseInt(test%10000/1000);
arr[4]=parseInt(test/10000);
for(var i=4;i>=0;i--){
if(arr[i]==0){
arr.splice(i,1);
}
}
console.log('给定数字是'+arr.length+'位数');
console.log('给定数字逆序输出为'+arr);
结果
给定数字是3位数
给定数字逆序输出为6,5,4
程序27:一个五位数,判断它是不是回文数。即个位与万位相同,十位与千位相同。
var test=13431;
if(parseInt(test/10000)==test%10 && parseInt(test%10000/1000)==parseInt(test%100/10)){
console.log(test+'是回文数');
}else{
console.log(test+'不是回文数');
}
结果
13431是回文数
程序28:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母
var str='Friday';
var arr=['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];
for(var i=0;i<7;i++){
if(arr[i]==str){
console.log(arr[i]);
}
}
结果
Friday
程序29:对十个数进行排序
var test=[123,43,52,543,64,547,7,532,252,256];
for(var i=0;i<test.length-1;i++){
for(var j=0;j<test.length-i-1;j++){
if(Number(test[j])<Number(test[j+1])){//用Number()是因为按字符串比较有问题
var tmp=test[j];
test[j]=test[j+1];
test[j+1]=tmp;
}
}
}
console.log('由大到小排序为'+test);
结果
由大到小排序为547,543,532,256,252,123,64,52,43,7
程序30:求一个3*3矩阵对角线元素之和
var test=[123,43,52,543,64,547,532,252,256];
var arr=[];
var n=3;
for(var i=1;i<=n;i++){
for(var j=1;j<=n;j++){
if(i==j||i+j==n+1){
arr.push(test[(i-1)*n+j-1]);
}
}
}
for(var k=0,sum=0;k<arr.length;k++){
sum+=arr[k];
}
console.log('这个'+n+'*'+n+'矩阵对角线元素之和是'+sum);
结果
这个3*3矩阵对角线元素之和是1027
上一篇:HDU 2298 Toxophily(公式/三分+二分)


下一篇:新概念英语(1-43)Hurry up!