//1、将字符串的首字母转化为大写。
function upperCase(str) {
return str.charAt(0).toUpperCase() + str.slice(1);
}
console.log(upperCase("aaa"));
//2、忽略大小写,判断两个字符串是否一致。
function compire(str1, str2) {
if (str1.toUpperCase() == str2.toUpperCase()) {
return true;
}
return false;
// return str1.toUpperCase() == str2.toUpperCase();
}
console.log(compire("Hello", "hello"));
//3、统计一个字符串中每个字符出现的次数。
function getAllCount(str) {
var string = "";
for (var i = 0; i < str.length; i++) {
if (string.indexOf(str.charAt(i)) == -1) {
string += str.charAt(i);
var count = str.split(str.charAt(i)).length - 1;
console.log(str.charAt(i) + "出现了" + count + "次.");
}
}
}
getAllCount("1011202");
//4、得到一个[-25,30)范围内的随机整数。
function random(x, y) {
return Math.round(Math.random() * (y - x) + x);
}
console.log(random(-25, 30));
//5、计算两个日期之间的差值,转化为n天n小时n分钟n秒n毫秒。
function getTimeOffset(y1, m1, d1, h1, M1, s1, ms1, y2, m2, d2, h2, M2, s2, ms2) {
var date1 = new Date(y1, m1, d1, h1, M1, s1, ms1);
var date2 = new Date(y2, m2, d2, h2, M2, s2, ms2);
var div = Math.abs(date1.getTime() - date2.getTime());
var days = div / (1000 * 60 * 60 * 24);
var hours = (div % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60);
var minutes = (div % (1000 * 60 * 60)) / (1000 * 60);
var seconds = (div % (1000 * 60)) / 1000;
var milliseconds = div % 1000;
return parseInt(days) + "天" + parseInt(hours) + "小时" + parseInt(minutes) + "分钟"
+ parseInt(seconds) + "秒" + milliseconds + "毫秒";
}
console.log(getTimeOffset(1997, 1, 2, 8, 10, 20, 21, 1999, 1, 1, 7, 50, 10, 99));
//6、给一个年份,获取这一年的第一天是周几。
function getWeek(year) {
var week = new Date(year, 0, 1).getDay();
switch (week) {
case 0:
return "周日";
case 1:
return "周一";
case 2:
return "周二";
case 3:
return "周三";
case 4:
return "周四";
case 5:
return "周五";
case 6:
return "周六";
}
}
console.log(getWeek(2018));
//7、分子是1的分数,叫做埃及分数,因为古埃及人在进行分数运算时,只使用分子是1的分数。
//现输入一个真分数(真分数,指的是分子比分母小的分数。),请将其分解为埃及分数。
// fraction函数是求a/b-c/d分数的分子
function fraction(a, b, c, d) {
return a * d - b * c;
}
function egyptian(a, b) {
if (a == 1) {
return a + "/" + b + " = " + a + "/" + b;
}
var x = a, y = b;
var str = "";
for (var i = 2; ; i++) {
if (parseInt(y / x) + 1 == i) {
str += "1/" + i + " + ";
x = fraction(x, y, 1, i);
y = y * i;
}
if (x == 1) {
str += "1/" + y;
break;
}
}
// 另一种循环写法
// for (var i = 2; x != 1; i++) {
// if (parseInt(y / x) + 1 == i) {
// str += "1/" + i + " + ";
// x = fraction(x, y, 1, i);
// y = y * i;
// }
// }
// str += "1/" + y;
return a + "/" + b + " = " + str;
}
console.log(egyptian(8, 11));
//8、需要从A,B,C,D,E,F六个人中尽可能多的挑出若干个人去执行一项任务,但有以下限制条件:
// 1)A,B两人中至少去一人;
// 2)A,D不能一起去;
// 3)A,E,F三人中要派两人去;
// 4)B,C都去或者都不去;
// 5)C和D两人中去一人;
// 6)若D不去,则E也不去。
// 问,应该让那几个人去?
// 1为去,0为不去
function getGo(x) {
return x == 1 ? "去 " : "不去 ";
}
function judge() {
for (var a = 0; a <= 1; a++) {
for (var b = 0; b <= 1; b++) {
for (var c = 0; c <= 1; c++) {
for (var d = 0; d <= 1; d++) {
for (var e = 0; e <= 1; e++) {
for (var f = 0; f <= 1; f++) {
if (d == 0) {
e = 0;
}
if ((a + b >= 1) && (a + d == 1) && (a + e + f == 2) && (b + c == 0 || b + c == 2) && (c + d == 1)) {
console.log("A" + getGo(a) + "B" + getGo(b) + "C" + getGo(c) + "D" + getGo(d) + "E" + getGo(e) + "F" + getGo(f));
}
// 此处设置e=1,如果不这样做,那么d==0时,e永远等于0,陷入死循环.
if (d == 0) {
e = 1;
}
}
}
}
}
}
}
}
judge();
//9、小明想把100元换成10元,5元,1元这样的零钱,
//在这三种零钱中每种零钱都至少各有一张的情况下,总共有多少种兑换方案?
function change(money) {
var count = 0;
for (var i = 1; i < parseInt(money / 10); i++) {
for (var j = 1; j < parseInt(money / 5); j++) {
for (var k = 1; k < money; k++) {
if (i * 10 + j * 5 + k == money) {
count++;
// console.log(i + "张10元 " + j + "张5元 " + k + "张1元");
}
}
}
}
return count;
}
console.log(change(100));
function change2(money) {
var count = 0;
for (var i = 1; i < parseInt(money / 10); i++) {
for (var j = 1; j < parseInt(money / 5); j++) {
if (10 * i + 5 * j < money) {
count++;
// console.log(i + "张10元 " + j + "张5元 " + (money - 10 * i - 5 * j) + "张1元");
}
}
}
return count;
}
console.log(change2(100));