問題の説明
空でない整数の配列で表された負でない整数が与えられたとき、その数に1を足します。最も大きい桁が配列の一番上に格納され、配列の各要素には1桁だけが格納されます。整数0を除いて、整数が0から始まることはないと仮定できます。
例:入力:[1,2,3] 出力:[1,2,4] 説明:入力配列は123を表します。
解答:
.配列に1を足すと言われているのは、実は数学の足し算の丸め問題に似ています。
考慮すべき点は3つあります:
---下1桁が9の場合、0に切り上げられます;
---下1桁が9でない場合は++;
----上記の2点を満たさない場合は9999となり、1桁目が1、下4桁が0となります;
コード上:
function addOne(arr)
{
var len = arr.length;
for(let i =len-1;i>=0;i--)
{
if(arr[i]===9)
{
arr[i] = 0;
}else{
arr[i]++;
return arr;
}
}
arr[0] = 1;
arr.forEach(element => {
element =0;
});
arr.push(0);
//加算する2つの方法
// for(let i=1;i<=len;i++)
// {
// arr[i] = 0;
// }
return arr;
}
テストコード:
var a = [4,3,2,1]
var b = [9,9,9,9];
console.log(addOne(a));
console.log("b:"+addOne(b));