/*
变量命名规则:
1.只能由字母、数字、下划线、美元符号组成,并且不能以数字开头。
2.变量命名要有意义,杜绝a01,b0046。
3.变量遵循小驼峰规则:第一个单词全小写,从第二个单词开始,首字母大写。 myColorArray
- 大驼峰:每个单词首字母大写。myDemo
- C语言的风格:单词全小写,中间用下划线隔开。my_color_array
4.变量名不能和系统关键字冲突。
*/
// (1) 循环求和:利用循环语句计算从100加到500的后的总和。
var sum = 0; //用于存放累加和的变量
for (var i = 100; i < 501; i++){
sum += i;
}
document.write(sum);
// (2) 字符判断:从键盘输入一个字符,判断这个字符是数字,
// 还是大写字母,还是小写字母,还是符号。
//输入字符串 adf 2332afd
var content = prompt();
//得到这个字符串的第一位的ascii码
var code = content.charCodeAt(0);
if (code >=48 && code <=57){
document.write("是数字!");
}
if( code >= 65 && code <= 90 ){
document.write("大写字母!");
}
if( code >= 97 && code <= 122 ){
document.write("小写字母!");
}else {
document.write("符号!");
}
// (4) 水仙花数:计算三位整数(100~999)的水仙花数。
// 水仙花数是指每一位的立方相加等于该数自己,比如153 = 1^3 + 5^3 + 3^3。
//从100遍历到999
for (var i = 100; i < 1000; i++){
//分别得到i的个十百位
//百位:除以100再取整
var a = parseInt(i / 100);
//十位:除以10再取整,对10取余
var b = parseInt(i / 10) % 10;
//个位:对10取余
var c = i % 10;
//如果a、b、c的三次方之和等于i本身,那就是水仙花数
//if在for中起了过滤的作用
if ( a*a*a + b*b*b + c*c*c == i ){
document.write(i + "
");
}
}
//抽象一下:用i、j、k分别表示百十个位
for (var i = 1; i < 10; i++){
for (var j = 0; j < 10; j++){
for (var k = 0; k < 10; k++){
// document.write(i+""+j+""+k+"
");
//进行if判断,过滤
var number = i*100 + j*10 + k;
if ( i*i*i + j*j*j + k*k*k == number){
document.write(number + "
");
}
}
}
}
// (5) 次方计算:计算X的Y次方,X(底数)和Y(指数)的值由用户输入。
//次方:2^3: 2 * 2 * 2 2^-3: 1/2*2*2 公理:任何数的0次方都为1
var x = parseInt(prompt("请输入底数:")); //2
var y = parseInt(prompt("请输入指数:")); //3
//保存相乘的结果
var result = 1;
/*
1: result 1 2 = 1 * 2
2: result 2 4 = 2 * 2
3: result 4 8 = 4 * 2
4:result 8
*/
if (y>0){
//对y是正数的情况下的处理
for ( var i = 0; i < y; i++){
result = result * x;
}
}else{
//y是负数,让y等于正数
for ( var i = 0; i < -y; i++){
result = result * x;
}
//将result求倒
result = 1 / result;
}
document.write(result);
// (6) 统计字符:从键盘输入一个字符串,统计这个字符串当中包含几个大写字母,
// 几个小写字母,几个数字,几个特殊符号。
//输入字符串
var content = prompt("请输入字符串:"); //1234abc
// document.write(content.length);
//定义一些变量去保存个数
var countNumber = 0;
var countBig = 0;
var countSmall = 0;
var countChar = 0;
//遍历字符串的每一位 1a2b3C
for ( var i = 0; i < content.length; i++){
//得到当前位的ascii码
var code = content.charCodeAt(i);
//判断这一位字符是在哪个区间
if (code >=48 && code <=57){
countNumber ++;
}else if( code >= 65 && code <= 90 ){
countBig ++;
}else if( code >= 97 && code <= 122 ){
countSmall ++;
}else {
countChar ++;
}
}
document.write("数字的个数:"+countNumber + "
");
document.write("大写的个数:"+countBig + "
");
document.write("小写的个数:"+countSmall + "
");
document.write("字符的个数:"+countChar + "
");
// (7) 抓球问题:有红球5个,黑球7个,白球9个,随机取出12个,
// 计算可能的颜色组合有多少种?
var count = 0;
//用三个循环变量分别代表三种球
for (var r = 0; r <= 5; r++){
for (var b = 0; b <= 7; b++){
for (var w = 0; w <= 9; w++){
//筛选满足我们条件的情况
if ( r + b + w == 12){
document.write("红球:" + r + ", 黑球:" + b + ", 白球:" + w +"
");
count++;
}
}
}
}
document.write("种数为:" + count);
(8) 组合问题:用1元纸币兑换1分,2分和5分的硬币,要求兑换总数为50枚,
// 问可以有多少种组合,每种组合对应1分,2分,5分分别是多少?
//i代表1分,j代表2分,k代表5分
var count = 0; //计数器
for(var i = 0; i <= 100; i++){
for ( var j = 0; j <= 50; j++){
for ( var k = 0; k <= 20; k++){
//过滤总数为50且面值和为100分的情况
if (i+j+k==50 && i+2*j+5*k == 100){
document.write(i + ", " + j + ", " + k +"
");
count ++;
}
}
}
}
document.write(count);
// (9) 九九乘法表:尝试用for循环完成九九乘法表输出。要求:三角形输出。
for(var i=1;i<10;i++) {
document.write("
");
for (var j=1; j <= i; j++) {
if(i*j<10){
document.write("  ");
}
document.write(i + "*" + j + "=" + i * j + "   ");
}
}
// (10) 字符串判断:从键盘输入一个字符串,
// 判断该字符串是否可以被转换为一个有效的数字。正整数
//123 abc 判断每一位的ascii码是否都在数字的区间
var content = prompt("请输入:");
for ( var i = 0; i < content.length; i++ ){
//获取当前位的ascii码
var code = content.charCodeAt(i);
if (code >= 48 && code <=57){
document.write("是数字!");
}else{
document.write("不是数字!");
}
}
//上面的这种做法:每判断一个字符,就得出一个结论。
var content = prompt("请输入:");
//利用一个变量打标记
var isNumber = true; //是true就是纯数字,是false就不是纯数字。
//123a45 12345
for ( var i = 0; i < content.length; i++ ){
//获取当前位的ascii码
var code = content.charCodeAt(i);
//判断是否有某一位不是数字区间的情况
// if ( !(code >= 48 && code <=57)){
if ( code < 48 || code > 57){
isNumber = false;
break;
}
}
//通过前面的逻辑处理,已经得到了一个结果。isNumber
if ( isNumber ){
document.write("是数字!");
}else{
document.write("不是数字!");
}
// (11) 用户输入一个数字,倒序输出,并计算每一位数字的和。
方法一:
var content = prompt('input:');
var sum = 0;
//abcd
for ( var i = content.length - 1; i >= 0; i--){
document.write(content[i]);
sum = sum + parseInt(content[i]);
}
document.write(sum);
方法二:
var number = parseInt(prompt('input:'));
var sum = 0;
while (number){
var value = number%10;
document.write(value);
sum = sum + value;
number = parseInt(number / 10);
}
/*
1.number 1234 value 4 sum 4 = 0 + 4 number 123
2.number 123 value 3 sum 7 = 4 + 3 number 12
3.number 12 value 2 sum 9 = 7 + 2 number 1
4.number 1 value 1 sum 10 = 9 + 1 number 0
5.number 0 - 循环结束
*/
document.write("
"+sum);
// (12)猜数字游戏,猜数字游戏,系统随机生成一个1000以内的数字,
// 用户输入一个数字,如果输入数字大于系统数字则提示‘大了’,反之提示‘小了’,
// 直到相等游戏结束,提示‘通关’ 并输出猜测次数。(提示:用到Math模块)
//Math.random()生成一个0-1的随机数
var randomNumber = parseInt(Math.random() * 1000);
// document.write(randomNumber + “
”);
// var count = 0; //计数器
//猜测一万次
// var randomNumber = parseInt(Math.random() * 1000);
// document.write(randomNumber + “
”);
// var count = 0; //计数器
//猜测一万次
// for ( var i = 0; i < 10000; i++){
//死循环
while(true){
count ++;
var myNumber = parseInt(prompt('请输入数字:'));
//比较我输入的和随机的这个数是否一致
if( myNumber > randomNumber ){
document.write('大了!');
}else if ( myNumber < randomNumber ){
document.write('小了!');
}else{
document.write('恭喜通关!');
break;
}
}
document.write('总共猜测了 <' + count+ '> 次!');