日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

蓝桥杯(java)阶乘计算,输入一个正整数n,输出n!的值。(高精度计算,用到数组)

發布時間:2025/3/15 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 蓝桥杯(java)阶乘计算,输入一个正整数n,输出n!的值。(高精度计算,用到数组) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題描述 輸入一個正整數n,輸出n!的值。
  其中n!=1*2*3*…*n。 算法描述 n!可能很大,而計算機能表示的整數范圍有限,需要使用高精度計算的方法。使用一個數組A來表示一個大整數aA[0]表示a的個位,A[1]表示a的十位,依次類推。
  將a乘以一個整數k變為將數組A的每一個元素都乘以k,請注意處理相應的進位。
  首先將a設為1,然后乘2,乘3,當乘到n時,即得到了n!的值。 輸入格式 輸入包含一個正整數nn<=1000。 輸出格式 輸出n!的準確值。 樣例輸入 10 樣例輸出

3628800

import java.util.Scanner;public class Main {public static void main(String[] args) {// TODO Auto-generated method stublong []a=new long [4000];Scanner key=new Scanner(System.in);int n=key.nextInt();for(int i=0;i<a.length;i++){a[i]=0;}a[0]=1;//把初始值由0改為1int jinWei,sum=0,flag=0;for(int i=2;i<=n;i++){jinWei=0;for(long j=0;j<a.length;j++){ //注意j的循環次數,不是n而是a.lengthsum=(int) (jinWei+a[(int) j]*i);a[(int) j]=sum%10;jinWei=sum/10;} } //去掉數組前邊多余的0for(long i=a.length-1;i>=0;i--){if(a[(int) i]!=0){ flag=(int) i;break;}}for(long i=flag;i>=0;i--){System.out.print(a[(int) i]);} } }

總結

以上是生活随笔為你收集整理的蓝桥杯(java)阶乘计算,输入一个正整数n,输出n!的值。(高精度计算,用到数组)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。