“求阶程”的问题

Ancom 2004-11-15 06:17:14
做习题“求某数的阶程”时 遇到了问题。检查了很多遍程序 好象没有问题 可运行时候出现的结果确与实际答案大相径庭。
麻烦大家帮我这个初学者看看
import java.io.*;
public class jiecheng
{
public static void main(String[] args)
{
char c=0;
int m=0;
System.out.println("count zhe jiecheng of 'n' ");
System.out.println("enter the num of 'n': ");
try{
c=(char)System.in.read();
}catch(IOException e){};
m=(int)c;
factorial(m); //调用方法factorial
}

//方法 计算n的阶程
static void factorial(int n)
{
int x=n;
long y=1l;
for(;x>0;x--)
y *= x;
System.out.println(n+"!="+y);
}
}

像直接factorial(8) 这样求某个确定数的阶程又不会出错
各位帮忙检查一下,谢过
...全文
65 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
mlovex 2004-11-15
  • 打赏
  • 举报
回复
楼上正解
改成m=integer.parseint(c)就应该好了
snow_oracle 2004-11-15
  • 打赏
  • 举报
回复
m=(int)c
这里出了问题.这里转的成的是unicode字符表的数值.
如输入8,m就等于56.应该用相应的字符串转换成相应的类型.
classjava 2004-11-15
  • 打赏
  • 举报
回复
static void factorial(int n)
{
int x=n;
long y=1;//方法正确
for(;x>0;x--)
y *= x;
System.out.println(n+"!="+y);
}
}
zhuyupu2004 2004-11-15
  • 打赏
  • 举报
回复
计算n的阶程 一般用递归
int factorial(int n)
{
int result;
if(x==1) return 1;
result=n*factorial(n-1);
return result;
}


23,407

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧