一、小明被不明势力劫持。后被扔到x星站再无问津。小明得知每天都有飞船飞往地球,但需要108元的船票,而他却身无分文。
他决定在x星战打工。好心的老板答应包食宿,第1天给他1元钱。
并且,以后的每一天都比前一-天多2元钱,直到他有足够的钱买票。
请编程计算小明在第几天就能凑够108元,返回地球。
javascript比较熟悉,使用javascript,其实用什么语言都差不多昂
【题意】
// 需要攒过 108元的船票
// 第一天 1 元
// 第二天 1+2
// 第三天 1+2+2
// 第三天 1+2+2+2
// 请问第几天能够攒够108元(每天的钱加起来)
【代码】
var m = 1;
var sum = 0;
for (let i = 1; sum < 108; i++) {
if (i > 1) {
m = m + 2; //每天的钱多2元
}
sum = m + sum; //每天的钱累加
console.log("需要多少天:", i, "每天的钱:", m, "总共多少钱", sum)
// console.log(i)
if (sum >= 108) {
// console.log(i)
}
}
【分析】
if (i > 1) {
m = m + 2; //每天的钱多2元 // 注意这里 第一天不走+2 ,第一天就是1,不然的话,算出来的i 就是 10天就能攒够钱了,也就是第一天只有一块钱也算一天
}
【结果】
质数练习:比如输入的数字为 求100 以内的质数的个数(除了1和本身都除不尽)
【代码】
for (let i =2;i<=100;i++){
for(let j=2;j<=i;j++){
if( i%j==0 && i!=j ){ // 没有余数 除得尽 91 91 =0 91 1 =91 除其他的都!=0
// console.log(i); // 为什么放这里不行
break;
}
if(j==i){
console.log(i) ;
}
} //2 // i=3时 j=3 i=3时 j++ j=3没输出 i=4时 ,也没输出 j++ j=4 ,j=5时
}
求两个正整数的最大公约数,最小公倍数:
【代码】
function max_gy(a, b) {
while (true) {
var yu = a % b; // 余数等于 a%b 有余数的话一直除下去,
if (yu == 0) {
return b; //没有余数,返回 除数
}
a = b;
b = yu;
}
}
function min_gb(a, b) {
return a * b / max_gy(a, b); //
}
var a = Number(prompt("请输入第一个值:"));
var b = Number(prompt("请输入第二个值:"));
document.write(a + "和" + b + "的最大公约数:" + max_gy(a, b));
document.write("<br>");
document.write(a + "和" + b + "的最小公倍数为:" + min_gb(a, b));
【分析】
a= 20 b=15
公约数
1...... 20 /15 =1 .....5 a=b a=15 b=5
2...... 15 /5=3 没有余数 b为最小公约即为5
公倍数:
20*15 / 5 = 300/5=60
遍历二维数组 (遍历二维数组中的一维数组的元素)
ps:不是遍历单纯的遍历其中的一维数组,而是一维数组其中的元素
【代码】
var a =[[1,2],[3,4]];
for(let i=0;i<a.length;i++){ // 两个一维数组
for( var j=0;j<a[i].length;j++){ //一维数组的长度
// a[i].length ; 一维数组的长度
document.write(a[i][j]); // 为什么输出 1,2,3,4
}
}
【分析】
// 分析: i =0时 j=0 j=1 arr[0][0] arr[0][1] 1 2
// i=1时 j=0 j=1 arr[1][0] arr[1][2] 3 4
打印图形:
【图案】
【代码】
for (let i = 0; i < 6; i++) {
for (let m = 0; m < i + 1; m++) { //先有空格,后有*
document.write(" ")
} //这样的话空格都打印在*的后面,因为 for执行完一轮,一行的*都打印完了
for (let j = 0; j < 11 - 2 * i; j++) {
document.write('*')
}
document.write("<br/>")
}
题目: 有 1, 2,3,4 个数字,能组成多少个互不相同的三位数 都是多少? 64个
那么互不相同,并且三个数没有重复的元素,这样的三位数又又多少呢 24个
【代码】
第一问:
var count =0;
for(let i=1;i<5;i++){
// console.log("i的值为:"+i);
for(let j=1;j<5;j++){
// console.log("j的值为:"+j);
for(let k=1;k<5;k++){
//console.log("k的值为"+k)
console.log(i+""+j+""+k);
count++;
}
}
}
console.log("总共有多少个:"+count);
【分析】
1开头的有 16种,2,3,4开头各14种,总共64种。
第二问:
【代码】
var count =-0;
for(let i=1;i<5;i++){
// console.log("i的值为:"+i);
for(let j=1;j<5;j++){
// console.log("j的值为:"+j);
for(let k=1;k<5;k++){
//console.log("k的值为"+k)
if(i!=j && i!=k && j!=k){
console.log(i+""+j+""+k);
count++;
}
}
}
}
【分析】 最内层的for循环里面加上if()判断条件
if(i!=j && i!=k && j!=k){ console.log(i+""+j+""+k);}
第一位数不等于第二位数,第一位数不等于第三位数,第二位数不等于第三位数
123 124 132 134 142 143 无重复的数字,1开头的有6种,其他一样,总24种。
记录笔记