N阶数阶乘

N阶数阶乘

 1process.stdin.resume();  2process.stdin.setEncoding('utf-8');  3let input = '';  4process.stdin.on('data', (data) => {  5 input += data;  6});  7process.stdin.on('end', () => {  8 let inputArray = input.split('\n');  9 10 let n = Number(inputArray[0]); 11 12 function multiplyBigInt(a: string, b: number): string { 13 let carry = 0; 14 let result = ''; 15 for (let i = a.length - 1; i >= 0; i--) { 16 let product = (parseInt(a[i]) * b) + carry; 17 result = (product % 10).toString() + result; 18 carry = Math.floor(product / 10); 19 } 20 while (carry > 0) { 21 result = (carry % 10).toString() + result; 22 carry = Math.floor(carry / 10); 23 } 24 return result; 25 } 26 27 function doFunc(n: number): string { 28 if (n <= 1000 && n >= 0) { 29 let result = '1'; 30 for (let i = 2; i <= n; i++) { 31 result = multiplyBigInt(result, i); 32 } 33 return result; 34 } 35 return '0'; // 如果不在范围内,返回 '0' 36 } 37 38 let result = doFunc(n); 39 console.log(result); 40 process.exit(); 41});
process.stdin.resume(); process.stdin.setEncoding('utf-8'); let input = ''; process.stdin.on('data', (data) => { input += data; }); process.stdin.on('end', () => { let inputArray = input.split('\n'); let n = Number(inputArray[0]); function multiplyBigInt(a: string, b: number): string { let carry = 0; let result = ''; for (let i = a.length - 1; i >= 0; i--) { let product = (parseInt(a[i]) * b) + carry; result = (product % 10).toString() + result; carry = Math.floor(product / 10); } while (carry > 0) { result = (carry % 10).toString() + result; carry = Math.floor(carry / 10); } return result; } function doFunc(n: number): string { if (n <= 1000 && n >= 0) { let result = '1'; for (let i = 2; i <= n; i++) { result = multiplyBigInt(result, i); } return result; } return '0'; // 如果不在范围内,返回 '0' } let result = doFunc(n); console.log(result); process.exit(); });

Powered By 可尔物语

浙ICP备11005866号-12