給你寫一個(gè)簡(jiǎn)單的如下:
創(chuàng)新互聯(lián)公司成都網(wǎng)站建設(shè)按需策劃,是成都網(wǎng)站維護(hù)公司,為成都廣告制作提供網(wǎng)站建設(shè)服務(wù),有成熟的網(wǎng)站定制合作流程,提供網(wǎng)站定制設(shè)計(jì)服務(wù):原型圖制作、網(wǎng)站創(chuàng)意設(shè)計(jì)、前端HTML5制作、后臺(tái)程序開發(fā)等。成都網(wǎng)站營(yíng)銷推廣熱線:13518219792
public class test{
public static void main(String args[]){
int i=1;
int j=1;
int sum;
for(;i=10;i++){
j=j*i;sum=sum+j;}
System.out.println("1~10的階乘和為"+sum);
}
}
這是一到十的階乘,用時(shí)將10換做成任何即可
前面的我就不寫了,你懂的! int num=1;for(int i=1;in;i++) { num=num*i } 然后輸出那個(gè)num的值就是了
對(duì)于一般的比如20以內(nèi)的階乘 可以用int 但是你這個(gè)太大了
long都不夠 用double了 沒(méi)有限制輸出格式 所以是科學(xué)計(jì)數(shù)的 而且用double小數(shù)點(diǎn)后會(huì)出現(xiàn)誤差 這個(gè)知道吧 文件名Sum.java 代碼如下:
package Sum;
public class Sum{
public static void main (String[] args) {
double sum=0,sumt,i,j;
for(i=1;i=100;i++){
for(j=1,sumt=1;j=i;j++){
sumt*=j;
}
sum+=sumt;
System.out.println(i+" "+sum+" "+sumt);
}
}
}
如果實(shí)在要求這么大的階乘 可以用數(shù)組方式解決
給你貼段代碼 以前網(wǎng)上某位寫的 忘記了 求階乘的
import java.util.Scanner;
public class nc030{
public static void main(String[] args) throws Exception {
int[] date = new int[100000];
date[1] = 1;
int weishu = 1; // 求出來(lái)的值的位數(shù)
System.out.println("------用數(shù)組解決大數(shù)問(wèn)題---------");
System.out.println("求n!的值");
System.out.print("n=");
Scanner cin = new Scanner(System.in);
int n = cin.nextInt();
for (int i = 1; i = n; i++) {
for (int j = 1; j = weishu; j++) {
date[j] = date[j] * i;
}
// 確保除最高位外的每位不大于9
for (int j = 1; j weishu; j++) {
if (date[j] = 10) {
date[j + 1] += date[j] / 10;
date[j] = date[j] % 10;
}
}
//確保最高位不大于9
while (date[weishu] = 10) {
weishu++;
date[weishu] += date[weishu - 1] / 10;
date[weishu - 1] = date[weishu - 1] % 10;
}
}
System.out.print(n + "!= ");
for (int k = weishu; k = 1; k--) {
System.out.print(date[k]);
}
System.out.println("");
}
}
啟發(fā)一下就好啦~
肯定不能用int,用int的自己去試試吧,早就超過(guò)范圍了。
可以用集合,保存結(jié)果的每一位,然后依次去計(jì)算。
使用BigInteger大容量運(yùn)算類計(jì)算100的階乘
一.一般算法(循環(huán))
view plaincopy to clipboardprint?
public class Test {
public static void main(String[] args) {
int result = 1;
for (int i = 1; i = 100; i++) {
result *= i;
}
System.out.println(result);
}
}
public class Test {
public static void main(String[] args) {
int result = 1;
for (int i = 1; i = 100; i++) {
result *= i;
}
System.out.println(result);
}
}
輸出結(jié)果為0,因?yàn)閕nt無(wú)法保存下100的階乘的結(jié)果,100的階乘的長(zhǎng)度至少大于50位,也要大于long,double
二.使用BigInteger大容量運(yùn)算類
view plaincopy to clipboardprint?
import java.math.BigInteger;
public class Test {
public static void main(String[] args) {
BigInteger result = new BigInteger("1");//為result賦初始值,為1
for (int i = 1; i = 100; i++) {
BigInteger num = new BigInteger(String.valueOf(i));
result = result.multiply(num);//調(diào)用自乘方法
}
System.out.println(result);//輸出結(jié)果
System.out.println(String.valueOf(result).length());//輸出長(zhǎng)度
}
}
import java.math.BigInteger;
public class Test {
public static void main(String[] args) {
BigInteger result = new BigInteger("1");//為result賦初始值,為1
for (int i = 1; i = 100; i++) {
BigInteger num = new BigInteger(String.valueOf(i));
result = result.multiply(num);//調(diào)用自乘方法
}
System.out.println(result);//輸出結(jié)果
System.out.println(String.valueOf(result).length());//輸出長(zhǎng)度
}
}
計(jì)算結(jié)果為:93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
產(chǎn)度:158
//java寫的
import?java.util.Scanner;
public?class?KnownTest?{
public?static?void?main(String[]?args)?{
Scanner?sc?=?new?Scanner(System.in);
System.out.println("輸入一個(gè)數(shù)字");
int?n?=?sc.nextInt();
System.out.println("結(jié)果是:"+f(n));
}
public?static?int?f(int?n){
int?sum?=?1;
for(int?i?=?1;i?=?n;++i){
sum?*=?i;?
}
return?sum;
}
}
本文標(biāo)題:java1乘到n的代碼的簡(jiǎn)單介紹
新聞來(lái)源:http://muchs.cn/article6/doccdig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、網(wǎng)站設(shè)計(jì)公司、電子商務(wù)、品牌網(wǎng)站設(shè)計(jì)、定制網(wǎng)站、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)