// 加法
function getAddition(type = 0, carry = false) {
let addend = [], result
result = Math.floor((Math.random() * 9) + 1)
addend[0] = Math.floor(Math.random() * (result - 1) + 1)
if (carry) {
result = Math.floor(Math.random() * 9)
addend[0] = Math.floor(Math.random() * (10 - (result + 1))) + (result + 1)
if (type <= 1) {
result += 10
}
} else {
if (type == 1) {
result += 10
addend[0] += 10
}
}
if (type == 2) {
result += Math.floor(Math.random() * 8 + 2) * 10
}
if (type == 3) {
result += Math.floor(Math.random() * 7 + 3) * 10
addend[0] += Math.floor(Math.random() * Math.floor(result / 10 - 2) + 1) * 10
}
addend[1] = result - addend[0]
if (type == 2) {
addend.sort(() => Math.random() - 0.5)
}
return {
formula: addend,
result: result
}
}
// 两个个位数相加
// 20 以内不进位加法(10 以内加法),两个个位数相加和 <=10
console.log(JSON.stringify(getAddition(0, false)))
// 20 以内进位加法,两个个位数相加 11 <= 得数 <= 18
console.log(JSON.stringify(getAddition(0, true)))
//一个两位数与一个个位数相加
// 100 以内不进位加法
console.log(JSON.stringify(getAddition(1, false)))
// 100 以内进位加法
console.log(JSON.stringify(getAddition(1, true)))
//两个两位数相加
// 100 以内不进位加法
console.log(JSON.stringify(getAddition(2, false)))
// 100 以内进位加法
console.log(JSON.stringify(getAddition(2, true)))
//两个两位数相加
// 100 以内不进位加法
console.log(JSON.stringify(getAddition(3, false)))
// 100 以内进位加法
console.log(JSON.stringify(getAddition(3, true)))
// 减法
function getSubtraction(type = 0, decomposition = false) {
let calculation = getAddition(type, decomposition)
return {
formula: [calculation.result, calculation.formula[0]],
result: calculation.formula[1]
}
}
// // 两个个位数相加
// // 20 以内不退位减法(10 以内减法),两个个位数相加和 <=10
// console.log(JSON.stringify(getSubtraction(0, false)))
// // 20 以内退位减法,两个个位数相加 11 <= 得数 <= 18
// console.log(JSON.stringify(getSubtraction(0, true)))
// //一个两位数与一个个位数相加
// // 100 以内不退位减法
// console.log(JSON.stringify(getSubtraction(1, false)))
// // 100 以内退位减法
// console.log(JSON.stringify(getSubtraction(1, true)))
// //两个两位数相加
// // 100 以内不退位减法
// console.log(JSON.stringify(getSubtraction(2, false)))
// // 100 以内退位减法
// console.log(JSON.stringify(getSubtraction(2, true)))
console