我看到这几个题比较有兴趣但是没有思路 可否请各路大神进行下思路指导
!谢谢!
【程序4】
题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
【程序5】
题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下
的用C表示。
1.程序分析:(a>b)?a:b这是条件运算符的基本例子。
【程序6】
题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
1.程序分析:利用辗除法。
【程序7】
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
1.程序分析:利用while语句,条件为输入的字符不为'\n'.
做了【程序8】
题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),
几个数相加有键盘控制。
1.程序分析:关键是计算出每一项的值。
【程序9】
题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程 找出1000以内的所有完
数。
【程序10】
题目:一球从100米高度*落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多
少米?第10次反弹多高?
【程序11】
题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。
【程序12】
题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万
元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部
分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可
提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。
4 个解决方案
#1
4.function f1(num){
var i = 2;
while(i<=num){
if(num%i==0){
console.log(i);
num /= i;
}else{
i++;
}
}
}
5.score=score>=90?"A":(score>=60?"B":"C";
6.function f2(a,b){
while(a%b!=0){
var temp;
if(a>=b){
temp=b;
b=a%b;
a=temp;
if(a%b==0){
console.log(b);
}
}else{
temp=a;
a=b;
b=temp;
}
}
}
8.function f3(a,b){
var str=a+"";
var sum=0;
for(var i=1;i<=b;i++){
str+=a;
var num=parseInt(str);
sum+=num;
console.log(sum);
}
}
其他的不会
var i = 2;
while(i<=num){
if(num%i==0){
console.log(i);
num /= i;
}else{
i++;
}
}
}
5.score=score>=90?"A":(score>=60?"B":"C";
6.function f2(a,b){
while(a%b!=0){
var temp;
if(a>=b){
temp=b;
b=a%b;
a=temp;
if(a%b==0){
console.log(b);
}
}else{
temp=a;
a=b;
b=temp;
}
}
}
8.function f3(a,b){
var str=a+"";
var sum=0;
for(var i=1;i<=b;i++){
str+=a;
var num=parseInt(str);
sum+=num;
console.log(sum);
}
}
其他的不会
#2
9题
var ws=[];
var ct=[];
var ctNum=0;
for(var i=1;i<1001;i++){
ct=[];
ctNum=0;
for(var j=1;j<i;j++){
if(i%j==0){
ct.push(j);
}
}
for(var k=0;k<ct.length;k++){
ctNum+=ct[k];
}
if(ctNum==i){
ws.push(ctNum);
}
}
for(var h=0;h<ws.length;h++){
document.write(ws[h]+"\n");
}
#3
//【程序4】
function fj(n){
var x = "",t;
!function(a){
for(t = a;--t;){
if(a % t == 0){
x += "*"+ a / t;
return arguments.callee.call(null,t);
}
}
if(t==1) x += "*"+ a;
}(n);
return n +"="+ x.substring(1);
}
//【程序5】
var cj = n >= 90 ? "A" : n >= 60 ? "B" : "C";
//【程序6】辗转相除法,代码略……
//【程序7】 while,for等都太复杂了
var str = " ssg451 35sdf45 12Wsd%#$ ";
console.log("英文个数:",str.split(/[a-z]/gi).length - 1);
console.log("空格个数:",str.split(/\s/g).length - 1);
console.log("其他个数:",str.split(/[^a-z0-9 ]/gi).length - 1);
//【程序10】数学老师不在,体育老师不回答
//【程序11】排序问题 4*3*2=24个
//【程序12】
function ly(w){
//w 单位W万元
if(w>100){
return 1+ (w-100)*0.01;//10万里取1万,其他部分1%
}else if(w>60){
return 1+ (w-60)*0.015;//10万里取1万,其他部分1.5%
}else if(w>40){
return 1+ (w-40)*0.03;//10万里取1万,其他部分3%
}else if(w>20){
return 1+ (w-20)*0.05;//10万里取1万,其他部分5%
}else if(w>10){
return 1+ (w-10)*0.075;//10万里取1万,其他部分7.5%
}else{
return w*0.01;//总的10%
}
}
#4
12题:
var s = [[1000000, 0.01], [600000, 0.015], [400000, 0.03], [200000, 0.05], [100000, 0.075], [0, 0.1]];
function calc() {
var n = Number($("#Text1").numberbox('getValue'));
var x = 0;
for (var i = 0; i < s.length; i++) {
var result = calc2(n, s[i]);
n = result[0];
x += result[1];
}
alert(x);
}
//a为利润
//b为区间
//c为区间分配比
function calc2(a, b) {
var x = [a, 0]; //默认返回原始值和分配为0
if (a > b[0]) {
x = [b[0], (a - b[0]) * b[1]];
}
return x;
}
#1
4.function f1(num){
var i = 2;
while(i<=num){
if(num%i==0){
console.log(i);
num /= i;
}else{
i++;
}
}
}
5.score=score>=90?"A":(score>=60?"B":"C";
6.function f2(a,b){
while(a%b!=0){
var temp;
if(a>=b){
temp=b;
b=a%b;
a=temp;
if(a%b==0){
console.log(b);
}
}else{
temp=a;
a=b;
b=temp;
}
}
}
8.function f3(a,b){
var str=a+"";
var sum=0;
for(var i=1;i<=b;i++){
str+=a;
var num=parseInt(str);
sum+=num;
console.log(sum);
}
}
其他的不会
var i = 2;
while(i<=num){
if(num%i==0){
console.log(i);
num /= i;
}else{
i++;
}
}
}
5.score=score>=90?"A":(score>=60?"B":"C";
6.function f2(a,b){
while(a%b!=0){
var temp;
if(a>=b){
temp=b;
b=a%b;
a=temp;
if(a%b==0){
console.log(b);
}
}else{
temp=a;
a=b;
b=temp;
}
}
}
8.function f3(a,b){
var str=a+"";
var sum=0;
for(var i=1;i<=b;i++){
str+=a;
var num=parseInt(str);
sum+=num;
console.log(sum);
}
}
其他的不会
#2
9题
var ws=[];
var ct=[];
var ctNum=0;
for(var i=1;i<1001;i++){
ct=[];
ctNum=0;
for(var j=1;j<i;j++){
if(i%j==0){
ct.push(j);
}
}
for(var k=0;k<ct.length;k++){
ctNum+=ct[k];
}
if(ctNum==i){
ws.push(ctNum);
}
}
for(var h=0;h<ws.length;h++){
document.write(ws[h]+"\n");
}
#3
//【程序4】
function fj(n){
var x = "",t;
!function(a){
for(t = a;--t;){
if(a % t == 0){
x += "*"+ a / t;
return arguments.callee.call(null,t);
}
}
if(t==1) x += "*"+ a;
}(n);
return n +"="+ x.substring(1);
}
//【程序5】
var cj = n >= 90 ? "A" : n >= 60 ? "B" : "C";
//【程序6】辗转相除法,代码略……
//【程序7】 while,for等都太复杂了
var str = " ssg451 35sdf45 12Wsd%#$ ";
console.log("英文个数:",str.split(/[a-z]/gi).length - 1);
console.log("空格个数:",str.split(/\s/g).length - 1);
console.log("其他个数:",str.split(/[^a-z0-9 ]/gi).length - 1);
//【程序10】数学老师不在,体育老师不回答
//【程序11】排序问题 4*3*2=24个
//【程序12】
function ly(w){
//w 单位W万元
if(w>100){
return 1+ (w-100)*0.01;//10万里取1万,其他部分1%
}else if(w>60){
return 1+ (w-60)*0.015;//10万里取1万,其他部分1.5%
}else if(w>40){
return 1+ (w-40)*0.03;//10万里取1万,其他部分3%
}else if(w>20){
return 1+ (w-20)*0.05;//10万里取1万,其他部分5%
}else if(w>10){
return 1+ (w-10)*0.075;//10万里取1万,其他部分7.5%
}else{
return w*0.01;//总的10%
}
}
#4
12题:
var s = [[1000000, 0.01], [600000, 0.015], [400000, 0.03], [200000, 0.05], [100000, 0.075], [0, 0.1]];
function calc() {
var n = Number($("#Text1").numberbox('getValue'));
var x = 0;
for (var i = 0; i < s.length; i++) {
var result = calc2(n, s[i]);
n = result[0];
x += result[1];
}
alert(x);
}
//a为利润
//b为区间
//c为区间分配比
function calc2(a, b) {
var x = [a, 0]; //默认返回原始值和分配为0
if (a > b[0]) {
x = [b[0], (a - b[0]) * b[1]];
}
return x;
}