这次比赛不难, 就是把一个4个数字的电子屏倒过来,
就成这样:
问题是我们需要多少块(每块倒着可以用)
首先, 写一个函数, 用于返回一个数字是否可以倒过来, 像7这种倒过来没有意义的就可以返回FALSE区分.
function getRevDig(x) {
switch (x) {
case 0: return 0;
case 1: return 1;
case 2: return 2;
case 5: return 5;
case 6: return 9;
case 8: return 8;
case 9: return 6;
default: return false;
}
}
给定一个4位数, 计算倒过来的数字, 如果倒过来无意义, 返回FALSE.
function getRev(x) {
var a = x % 10;
a = getRevDig(a);
if (a === false) return false;
var b = Math.floor(x / 10) % 10;
b = getRevDig(b);
if (b === false) return false;
var c = Math.floor(x / 100) % 10;
c = getRevDig(c);
if (c === false) return false;
var d = Math.floor(x / 1000);
d = getRevDig(d);
if (d === false) return false;
return (a * 1000 + b * 100 + c * 10 + d);
}
然后就是从0到9999, 每次检查是否已经出现了, 否则统计加1, 然后把倒过来的数字也标记上了.
var total = 0;
var a = {};
for (var i = 0; i <= 9999; ++i) {
if (!(i in a)) {
total ++;
a[i] = 1;
var x = getRev(i);
if (x !== false) {
a[x] = 1;
}
}
}
console.log(total);
这样就能打印出正确的答案了, 希望能获奖!
数学
- 数学之美: Sigma 函数的推导公式与 Python 实现
- 教孩子编程: 证明根号2是个无理数的两种方法(反正法/几何无限下降法)
- 机器学习(最优化)根本数学公式: arg_max_{x∈X} F(x)
- ChatGPT (3.5和4) 解2023年高考数学题
- [答案] 数学 × 程式编写比赛 (第八回) - 4位数的电子显示器
- 数学证明 0.9 ... 无限循环等于1
英文: [Answer] Mathematics × Programming Competition #8 – Four Digit Calculator
本文一共 162 个汉字, 你数一下对不对.上一篇: 为了长远考虑, CN 低保银行降息计划
下一篇: SteemSQL 系列教程之 - 你的哪些好友已经好久没玩STEEM了?
扫描二维码,分享本文到微信朋友圈
![0159 [答案] 数学 × 程式编写比赛 (第八回) - 4位数的电子显示器 I.T. SteemIt 数学 程序设计 0159 [答案] 数学 × 程式编写比赛 (第八回) - 4位数的电子显示器 I.T. SteemIt 数学 程序设计](https://helloacm.com/wp-content/uploads/2017/10/0159.png)
![6510 [答案] 数学 × 程式编写比赛 (第八回) - 4位数的电子显示器 I.T. SteemIt 数学 程序设计 6510 [答案] 数学 × 程式编写比赛 (第八回) - 4位数的电子显示器 I.T. SteemIt 数学 程序设计](https://helloacm.com/wp-content/uploads/2017/10/6510.png)