永发信息网

计算9的j阶乘

答案:4  悬赏:0  手机版
解决时间 2021-03-27 04:05
  • 提问者网友:姑娘长的好罪过
  • 2021-03-26 20:44
计算9的j阶乘
最佳答案
  • 五星知识达人网友:鱼忧
  • 2021-03-26 21:52
不好意思,开始答错了,我用了循环,你看下吧,郁闷
public class Test {

public static void main(String[] args) {
//因为阶乘的结果都很大,所以用了长整型
long j=20;
long result = 1;
if(j<9){
for(long i=9;i>j-1;i--){
result=result*i;
System.out.println(result);
}
}else if(j>9){
for(long x=9;x result=x*result;
System.out.println(result);
}
}else{
System.out.println(9);
}
}
}
全部回答
  • 1楼网友:一袍清酒付
  • 2021-03-27 01:52
#include
#include
#include
#include
void change(int array[],int pos)//计算进位
{
int i,carray=0;
for(i=0;i<=pos;i++)
{
array[i]=array[i]+carray;
if(array[i]<=9)//小于9不进位
carray=0;
else if(array[i]>9&&i {
carray=array[i]/10;
array[i]=array[i]%10;
}
else if(array[i]>9&&i>=pos)//大于9 且是最高位
{
while(array[i]>9)
{
carray=array[i]/10;
array[i]=array[i]%10;
i++;
array[i]=carray;
}
}
}
}
void main()
{
int num,i,pos,m,j;
double sum=0;
int *array;
cout<<"请输入数字 ,太大屏幕容易成不下哦"< cin>>num;
for(i=1;i<=num;i++)//计算阶乘的位数
sum+=log10(i);
m=(int)sum+1;//记录长度
array=(int *)malloc((m+1)*sizeof(int));
for(i=0;i<=m;i++)
array[i]=0;
array[0]=1;
for(i=2;i<=num;i++)
{
for(j=m;j>=0;j--)
if(array[j]!=0)
{
pos=j;//记录最高位
break;
}
for(j=0;j<=pos;j++)
array[j]=array[j]*i;//每一位与i乘
change(array,pos);
}
for(j=m;j>=0;j--)
if(array[j]!=0)
{
pos=j;
break;
}
for(i=pos;i>=0;i--)
cout< cout< cout<<"共有"<<' '< system("pause");
}
  • 2楼网友:十年萤火照君眠
  • 2021-03-27 00:20
//递归
public int mult(int num){
if(num==1){
return num;
}else{

return num*mult(num-1);
}
}
  • 3楼网友:詩光轨車
  • 2021-03-26 23:19
因为JAVA中没有幂运算符,所以必须采用Java.lang.math类的pow()方法
例子:
public class Test {
public static void main(String[] args) {
Test t=new Test();
double j=0.0;
double d=Math.pow(9, j);//j是变量了,返回值是双精度,如果要整型,得强转
System.out.println(d);
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯