<p>1 打印出1-100里所有的偶数</p>

<script>
// for(var i=1;i<=100;i++){
// if(i%2==0){
// document.write(i+" ");
// }
// }
</script>

<p>2 打印出1-100里所有的奇数</p>

<script>
// for(var i=1;i<=100;i++){
// if(i%2==1){
// document.write(i+" ");
// }
// }
</script>

<p>3 求出1-1/2+1/3-1/4…..1/100的结果</p>

<script>
// 把所有加减数都看成加数,如把(-1/2)看成+(-1/2)
var j=0; //保存所有加数
for(var i=2;i<=100;i++){ /*加数的分母,从2开始*/
if(i%2==0){ /*如果能是偶数,置为正数,-1/i*/
j+=-1/i; /*把这些数相加并保存起来*/
}else{ /*如果能是偶数,置为负数+1/i*/
j+=+1/i; /*把这些数相加并保存起来*/
}
}
console.log(1+j); /*然后加上所有的加数*/
</script>

<p>4 输出20-80之间能被3整除的整数,每5个一行</p>

<script>
var j=1;/*保存已经获得的个数*/
for(var i=20;i<=80;i++){
if(i%3==0){/*如果i是能被3整除的数*/
document.write(i+" ");就把i输出
if(j%5==0){/*如果是5的倍数,也就是满5个那就输入一个转行*/
document.write("<br>")
}
j++;
}
}
</script>

<p>5 打印出1000-2000年中所有的闰年,并以每行四个数的形式输出(提示:四年一闰,百年不闰,四百再闰)。</p>

<script>
//一
var j=0; /*保存闰个数*/
for(var i=1000;i<=2000;i++){
if((i%100!=0)){ /*不是100年的*/
if(i%4==0){ /*不是100年且是4年的*/
j++;
document.write(i+" ")
if(j%4==0){
document.write("<br>")
}
}
}else{
if(i%400==0){ /*是400年的*/
j++;
document.write(i+" ")
if(j%4==0){
document.write("<br>")
}
}
}
}
//二
var j=0; /*保存闰年个数*/
for(var i=1000;i<=2000;i++){
if((i%4==0&&i%100!=0)||(i%400==0)){ /*能被4整除且不能被100整数,或,能被400整除*/
j++;
document.write(i+" ");
if(j%4==0){ /*如果闰年个数为4个再输出一个转行*/
document.write("<br>");
}
}
}
</script>

<p>6 输入一个数,判断其是否为素数(提示:在大于1的自然数中,除了1和它本身以外不再有其他因数的数)。</p>

<script>
//方法一
document.write('<input id="ipt"><button id="btn">判断</button>');
var ipt=document.getElementById("ipt");
var btn=document.getElementById("btn");
btn.onclick=function(){
var j=0;/*保存因数个数*/
if(!(isNaN(ipt.value))&&!(ipt.value<=1)&&!(ipt.value=="")&&!(ipt.value%1!=0)){//条件分别是:不为非数字、不小于等于1、不为小数
for(var i=1;i<=ipt.value;i++){
if((ipt.value/i)%1==0){ /*如果余数为0,就是因数。 【(ipt.value/i)%1】 可以写成 【(ipt.value)%i】 */
j++;
}
}
if(j==2){ /*如果因数个数最大为2*/
alert("是素数")
}
}else{
alert("请输入大于1的整数")
}
} //方法二,数字4有问题
// document.write('<input id="ipt"><button id="btn">判断</button>');
// var btn=document.getElementById("ipt");
// var btn1=document.getElementById("btn");
// btn1.onclick=function(){
// var number=parseInt(btn.value);
// if(abc(number)){ /*如果abc()返回真才执行*/
// alert(number + "是素数");
// }else{
// alert(number + "不是素数");
// }
// }
// function abc(num){ /*相当于在函数内的声明了变量: var num*/
// if(num==1){ //1不是素数
// return false; //结束函数
// }else{
// for(var i=2;i<Math.sqrt(num);i++){ //如数字10中5(一半)以下的除不尽,5以上也没有能除尽的了。所以开方一下Math.sqrt,以减少循环。
// if(num%i==0){
// return false;
// }
// }
// }
// return true;
// } </script>

<p>7 求100-200之间的素数</p>

<script>
for(var i=100;i<=200;i++){
var k=0; /*保存因数个数*/
for(var j=1;j<=i;j++){ /*除数*/
if((i/j)%1==0){ 如果商没有小数,开始合计因数个数
k++;
}
}
if(k==2){ /*因数总个数为2就是素数*/
document.write(i+" ")
}
}
</script>

<p>8 任给正整数n,计算  1!+2!+3!+ …+n!。(提示:3!=3*2*1)</p>

<script>
document.write('<input id="ipt"><button id="btn">计算</button>');
var ipt=document.getElementById("ipt");
var btn=document.getElementById("btn");
var j=1; /*保存阶乘值*/
var k=0; /*保存阶乘值的和*/
btn.onclick=function(){
if(!(isNaN(ipt.value)) && !(ipt.value%1!=0) && !(ipt.value<1)){
for(var i=1;i<=ipt.value;i++){
j*=i;
k+=j;
}
alert(k)
}else{
alert("请输入大于1的整数")
}
}
</script>

<p>9 求Sn=a+aa+aaa+……+aa……a之值,其中a是一个数字,n是文本框输入的。</p>

<script>
document.write('输入a:<input id="ipt" value>输入n:<input id="ipt2"><button id="btn">计算</button>')
btn.onclick=function(){
var s1=0;
var s2=0;
var a=document.getElementById("ipt");
var n=document.getElementById("ipt2");
var btn=document.getElementById("btn");
if((!(isNaN(n.value)) && !(n.value<1) && !(n.value%1!=0)) && !(isNaN(a.value)) && !(a.value<1) && !(a.value%1!=0)){
for(var i=0;i<=(n.value-1);i++){ /*i是次方*/
s1+=a.value*Math.pow(10,i); /*从低位开始还原数位,如1=1*10^1;10=1*10^2;100=10*10^3;...再把他们相加,也就是s1,合成完整数字。如111*/
s2+=s1; /*把每次合成的值保存在s2中,作为题目中的加数之一*/
}
alert(s2*2-s1);//从题目的式子可以看出,1+11+111+11+1,其中出了111只被加一次其他都加了两次,所以直接把之前计算的s2*2再减去最后合成的一个数s1就可以了。
}else{
alert("请输入大于0的整数")
}
} document.write('输入a:<input id="ipt" value>输入n:<input id="ipt2"><button id="btn">计算</button>')
btn.onclick=function(){
var s1=0;
var s2=0;
var a=document.getElementById("ipt");
var n=document.getElementById("ipt2");
var btn=document.getElementById("btn");
if((!(isNaN(n.value)) && !(n.value<1) && !(n.value%1!=0)) && !(isNaN(a.value)) && !(a.value<1) && !(a.value%1!=0)){
for(var i=0;i<=(n.value-1);i++){ /*i是次方*/
s1+=a.value*Math.pow(10,i); /*从低位开始还原数位,如1=1*10^1;10=1*10^2;100=10*10^3;...再把他们相加,也就是s1,合成完整数字。如111*/
s2+=s1; /*把每次合成的值保存在s2中,作为题目中的加数之一*/
}
alert(s2);//从题目的式子可以看出,1+11+111+11+1,其中出了111只被加一次其他都加了两次,所以直接把之前计算的s2*2再减去最后合成的一个数s1就可以了。
}else{
alert("请输入大于0的整数")
}
}
</script>

JS练习题2共8题的更多相关文章

  1. JS练习题1共7题

    <p>1 一个新人入职,月工资为2000元的员工,每年涨工资5%,到退休时的月工资是多少?</p> <script> document.write(Math.rou ...

  2. Leetcode 简略题解 - 共567题

    Leetcode 简略题解 - 共567题     写在开头:我作为一个老实人,一向非常反感骗赞.收智商税两种行为.前几天看到不止两三位用户说自己辛苦写了干货,结果收藏数是点赞数的三倍有余,感觉自己的 ...

  3. 2019前端面试系列——JS高频手写代码题

    实现 new 方法 /* * 1.创建一个空对象 * 2.链接到原型 * 3.绑定this值 * 4.返回新对象 */ // 第一种实现 function createNew() { let obj ...

  4. 【js】Leetcode每日一题-制作m束花所需的最少天数

    [js]Leetcode每日一题-制作m束花所需的最少天数 [题目描述] 给你一个整数数组 bloomDay,以及两个整数 m 和 k . 现需要制作 m 束花.制作花束时,需要使用花园中 相邻的 k ...

  5. 【js】Leetcode每日一题-完成所有工作的最短时间

    [js]Leetcode每日一题-完成所有工作的最短时间 [题目描述] 给你一个整数数组 jobs ,其中 jobs[i] 是完成第 i 项工作要花费的时间. 请你将这些工作分配给 k 位工人.所有工 ...

  6. 【js】Leetcode每日一题-数组异或操作

    [js]Leetcode每日一题-数组异或操作 [题目描述] 给你两个整数,n 和 start . 数组 nums 定义为:nums[i] = start + 2*i(下标从 0 开始)且 n == ...

  7. 【js】Leetcode每日一题-解码异或后数组

    [js]Leetcode每日一题-解码异或后数组 [题目描述] 未知 整数数组 arr 由 n 个非负整数组成. 经编码后变为长度为 n - 1 的另一个整数数组 encoded ,其中 encode ...

  8. 【js】Leetcode每日一题-叶子相似的树

    [js]Leetcode每日一题-叶子相似的树 [题目描述] 请考虑一棵二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个 叶值序列 . 举个例子,如上图所示,给定一棵叶值序列为 (6, 7 ...

  9. 【js】Leetcode每日一题-子数组异或查询

    [js]Leetcode每日一题-子数组异或查询 [题目描述] 有一个正整数数组 arr,现给你一个对应的查询数组 queries,其中 queries[i] = [Li, Ri]. 对于每个查询 i ...

随机推荐

  1. [python] import curses

    python 中,我们使用 curses.wrapper 来创建终端交互window.使用 stdscr 来代表 window 对象. 使用方法: from curses import wrapper ...

  2. Groovy basic

    1. print println "Hello Groovy!" you can use java in Groovy System.out.println("Hello ...

  3. Web页面多对象多文档事件冲突的解决方案

    这段时间写了很多基于js和jquery的前端控件,每一个的功能都很复杂,事件也很多. 因为都是单独封装的,单独使用没有问题,但把他们放到一个页面使用,就经常发生事件冲突的问题. 这几天一直在考虑用一个 ...

  4. Linux系统下 解决Qt5无法连接MySQL数据库的方法

    Linux平台下解决Qt5连接mysql数据库的问题:输入sudo apt-get install libqt5sql5-mysql解决,这种方法只能解决Qt是用sudo apt-get instal ...

  5. linux 下部署 kafka

    参考文章 http://www.cnblogs.com/sunxucool/p/4459020.html http://www.cnblogs.com/oftenlin/p/4047504.html ...

  6. sublime使用以及快捷键

    1.工程文件中的内容的查找替换 例: 想要把工程文件中的“山东”改为“云南”. 1)首先选中工程文件夹 2)右击出现下拉菜单,选择 find&replace 选项 3)出现在编辑框内输入要查找 ...

  7. ABP的事件总线和领域事件(EventBus & Domain Events)

    http://www.aspnetboilerplate.com/Pages/Documents/EventBus-Domain-Events EventBus EventBus是个单例,获得Even ...

  8. [学习笔记] 七步从AngularJS菜鸟到专家(4和5):指令和表达式 [转]

    这一篇包含了"AngularJS - 七步从菜鸟到专家"系列的第四篇(指令)和第五篇(表达式). 之前的几篇展示了我们应用的核心组件,以及如何设置搭建一个Angular.js应用.在这一部分,我们会厘 ...

  9. 不要轻易delete void*指针,这样会隐藏比较多的错误。

    #include<iostream> using namespace std; class Object{ void* data; const int size; const char i ...

  10. 5.2 Adapter

    1 ArrayAdapter 只可以简单的显示一行文本 ArrayAdapter<String> adapter = new ArrayAdapter<String>( thi ...