2019.7.25锻炼逻辑思维9道题。

1.在calDate()的基础之上添加 计算当前日期的是星期几的功能
注:设定1900年1月1日为周一

2判断101-200之间有多少个素数,并输出所有素数。

3.打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

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.求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。

6.猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下 的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

7.有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?

8.计算用户输入的数字的阶乘,例如用户输入的是5,则计算5的阶乘,5的阶乘为 5*4*3*2*1

9.定义一个函数,返回1+1/3+1/5+1/7+....1/n的和

<button onclick="one()">年份</button>
<button onclick="two()">素数</button>
<button onclick="three()">水仙花数</button>
<button onclick="four()">质因数</button>
<button onclick="five()">叠加</button>
<button onclick="six()">桃子</button>
<button onclick="seven()">年龄</button>
<button onclick="eight()">阶乘</button>
<button onclick="nine()">加法</button>
<script type="text/javascript">
// 1.在calDate()的基础之上添加 计算当前日期的是星期几的功能
// 注:设定1900年1月1日为周一
function one() {
//输入年月日;
var year = Number(prompt(‘请输入年:‘));
var month = Number(prompt(‘请输入月:‘));
var days = Number(prompt(‘请输入天:‘));
//先给闰年赋一个值
var isRun = (year%4==0 && year%100!=0)||year%400 ==0;
var totals=0;
// 循环变量
var i = 1;
while(i<month){//当前月的前面一共有多少天
switch (i) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
totals +=31;
break;
case 2:
// 根据年份判断二月的天数,isRun用在这里
if(isRun){
totals +=29;
}else{
totals +=28;
}
break;
case 4:
case 6:
case 9:
case 11:
totals += 30;
break;
}
i++;
}
// 累积加上当前月的天数
totals += days;
console.log(‘今天是‘+ year+"年的第"+ totals +"天");

// 累积计算,从1900年到year-1年,共多少天
for(var j = 1900;j<year;j++){
// 判断j年是否为闰年
if((j%4==0 && j%100!=0)||j%400==0){
totals +=366;
}else{
totals +=365;
}
}
console.log(‘从1900年到现在一共‘+totals+"天");
// 计算 是星期几
var week = totals % 7;
var msg = "星期";
switch (week) {
case 0:
msg +="日";
break;
case 1:
msg +="一";
break;
case 2:
msg +="二";
break;
case 3:
msg +="三";
break;
case 4:
msg +="四";
break;
case 5:
msg +="五";
break;
case 6:
msg +="六";
break;
}
console.log(‘今天是‘+ year+"年的第"+ days +"天,是"+msg);
}

function two(){
//2判断101-200之间有多少个素数,并输出所有素数。
var num;
//给个数,让这个数在101到200之间,开始验证素数
for(num = 101;num <201;num++){
//count是开关,避免重复输出num
var count = 0;
//记得给i赋值
var i;
//素数是除1和本身以外不能被整除的数
for(i = 2;i < num;i++){
if (num % i ==0) {
count += 1
//count加上1.则跳出,反正已经不是素数了,不必浪费内存
break;
}
}
if(count == 0){
console.log(‘素数有:‘ + num);
}
}
}

function three(){
//3.打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
var num;
//输的范围
for(num = 100;num < 1000;num++){
//百位
var a = parseInt(num / 100);
//十位
var b = parseInt((num % 100)/10);
//个位
var c = parseInt(num % 10);
//水仙花数的条件
if(num == a*a*a+b*b*b+c*c*c){
console.log(‘100~1000中水仙花数有‘ + num);
}
}
}

function four(){
// 4.将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
// 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
// (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
// (2)如果n>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。

// 1.输入数据 n
var n = prompt("请输入一个正整数:");
// 将这个n 去取最小质数 k (2---n)的余数
var msg = n+"=";
for(var k = 2;k<=n;k++){
// 90%2 == 0 2是90的质因数
while(n%k == 0 && n !=k ){
// 打印出k
console.log(k);
msg += (k + "*");
// 将n除以k的商(结果),作为新的正整数赋值给n
n = n/k;
}
if(k == n){
msg +=n;
}
}
console.log(msg);
}

function five(){
// 5.求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
/*首先列个数演算,得出num和n的规律
2 10*n + 2=2 n=0
22 10*n + 2=22 n=2
222 10*n + 2=222 n=22
2222 10*n + 2=2222 n=222
*/
//输入数字和所叠加的个数
var num = Number(prompt("请输入一个数字:"));
var count = Number(prompt("请输入叠加的个数"))
// 记录和的变量,初始都为0,以便存取
var sum = 0;
var n = 0 ;
var i;
for(var i =1;i<=count;i++){
// n记录每一个加数
n = n*10 + num;
console.log(n);
sum += n;
}
console.log(n + ‘个‘ + num + ‘的叠加的和为‘ + sum);
}

function six(){
// 6.猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下 的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
//第一天和第十天
var one;
var ten = 1;
var i;
//中间吃了九天,所以加九次
for(i = 1;i <= 9;i++){
//每次与前一天的数值交换
one = (ten + 1) * 2;
ten = one;
}
console.log(‘一共摘了‘ + one + ‘个‘);
}

function seven(){
// 7.有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,
// 他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,
// 说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
//赋值第一个人的年龄,第五个人。
var one = 10;
var five;
var i;
//每个人都比前一个小两岁,循环四次
for(i = 1;i <= 4;i++){
five = one + 2;
one = five;
}
//输出第五个人年龄
console.log(‘第五个人的年龄为‘ + five);
}
// 8.计算用户输入的数字的阶乘,例如用户输入的是5,则计算5的阶乘,
// 5的阶乘为 5*4*3*2*1
function eight(){
//从1开始乘起
var x = 1;
var n = prompt(‘请输入一个数字:‘);
var i;
//循环n次,每次后的值都为前两个数的乘。
for(i = 1;i <= n;i++){
x *= i;
}
console.log(‘这个数的阶乘是‘ + x);
}

// 9.定义一个函数,返回1+1/3+1/5+1/7+....1/n的和
function nine(){
//定义一个数字和 sum,n 为想要加到1/n,不然无限加下去是没结果的。
var sum = 0,n = prompt(‘请输入一个正奇数:‘);
var i;
// sum数字和的值邓毅前面两次的和,而且都是奇数。
for(i = 1; i <= n;i += 2){
sum += 1/i
}
//输出
console.log(‘从1加到1/n的值为‘ + sum);
}
</script>

原文地址:https://www.cnblogs.com/awei313558147/p/11246272.html

时间: 2024-08-30 17:44:41

2019.7.25锻炼逻辑思维9道题。的相关文章

2019/08/25 leetcode

2019/08/25: L230, L226, L18, L234, L23 1. L230 Kth smallest element in BST 借助 Stack 或 LinkedList inorder traveresal, LinkedList会更快 ArrayList, LinkedList, Vector, Stack  https://blog.csdn.net/iteye_11495/article/details/82618748 2. L226 Invert Binary

2019.4.25 周四 阴有小雨

今天晚上跟朋友吃了一顿小龙虾和烧烤,然后又看了一把复联四,顺便交流了一波java技术加吹牛,very happy! 周五早上有个去亚信的面试,咨询了在那个部门工作的小伙伴,说用到kalfka和storm.天呐我也有没实际用过,那就随便自学一点点外加背几题面试题吧. 一.kalfka Apache Kafka® is a distributed streaming platform. a few concepts: --Kafka is run as a cluster on one or mor

【2019.9.25】Za

容斥 容斥 \(\Big|\bigcup\limits_{i=1}^nS_i\Big|=\sum\limits_{m=1}^n(-1)^{m-1}\ \sum\limits_{a_i<a_{i+1}}\Big|\bigcap\limits_{i=1}^mS_{a_i}\Big|\) 不定方程非负整数解计数 不定方程\(\sum_{i=1}^n\ x_i=m\)和\(n\)个限制条件\(x_i\le b_i\) 没有限制时 其非负整数解为\(C_{m+n-1}^{m-1}\) 相当于有\(m\)个

数据结构测试2 on 2019.9.25

又是一天的数据结构,但今天直接爆炸,1题和3题都写挂了200->0. T1 abnormal 一开始想的是线段树,但是自己感觉维护不来,果断放弃线段树.这时又想到离线的莫队做法,本以为这道题稳了,结果最后还是打炸了.题面意思都搞错了,真的是个傻逼. 这道题对于莫队来讲就是最简单的莫队,用一个数组cnt来维护每个魅力值的出现次数即可,但注意在统计出现次数的时候,还是要加注意,因为题目中定义的不正常团伙是只能出现2次,所以少于两次的和超过两次的都要累加他们的贡献.需要小小的特判. 代码如下: #in

【2019.10.25】

summary 分情况拿分保底真的很好用 像我这种辣鸡应该注意保底 打题不要慌 有条理 不要东一条西一条 小奇采药 对于 30% 的数据,O(2n ) 枚举取 or 不取 对于 60% 的数据,O(nm) 做 01 背包,即 f(i, j) 表示前 i 株 草药,耗费 j 的时间能达到的最?代价. 对于 100% 的数据,注意到 m,t,v 纯随机 那么不会选太多的草药,?耗时较少的草药有很?概率存在 于最优解中 针对这些性质优化搜索 当然也可以合理使用随机化和卡时,复杂度 O(?学) 最基础6

2019/01/25 低迷的一天

今天不分享技术,也不发表工作事情.主要是因为今天看到的2个事情有感 1.中午和同事下去吃饭,吃饭的地方是一个公共的美食城,所以就有那种吃完了的饭菜要等一会才有人收拾,恰好吃完后,隔壁2个人离去.这时候突然来了一个50岁左右的男人,着装整齐,背了个包,开始以为他是找座位,还特意看了下周围,也瞟了下我,突然他拿起别人吃完的饭菜在那里狼吞虎咽,第一次看到,也是很真实的看到,我没想到一个看起来不像缺钱的人竟然会饭都吃不起,我当时还看了他几眼,他好像知道了有点忐忑那种,手和筷子发抖,于是我马上低头看手机,

[jzoj 6084] [GDOI2019模拟2019.3.25] 礼物 [luogu 4916] 魔力环 解题报告(莫比乌斯反演+生成函数)

题目链接: https://jzoj.net/senior/#main/show/6084 https://www.luogu.org/problemnew/show/P4916 题目: 题解: 我们设$f(x)$表示最小循环节长度为x的合法序列数,那么有$ans=\sum_{d|gcd(n,m)}\frac{1}{d}f(d)$ 这是因为最小循环节为d的序列对应的环会被计算d次,比如 0101,最小循环节长度为 2(循环节为 01),其对应的环会被统计 2 次(序列 0101 与 1010)

学习总结2019.3.25

元组 (存多个数据,不可变,有序) 定义:在圆括号内用逗号隔开的多个任意类型数据,元组与列表的 t = (1, 'a', ('b',2)) t = (1, ) 常用操作: 索引取值 t = (1, 2, 3, 2, 3, 2) print(t[1]) print(t[-2]) 切片 print(id(t)) nt = t[:-1:] print(nt, id(nt)) 长度(item元素个数) print(len(t)) 成员运算(in | not in ) 元组内置方法 print(t.cou

2019.5.25 Noip模拟测试2

原文地址:https://www.cnblogs.com/LJB666/p/10921986.html