你这是自己写的类,谁知道你类写的对不,你得把所有的都贴出来,还有编译出错的内容。不然谁给你弄啊。
创新互联公司2013年开创至今,是专业互联网技术服务公司,拥有项目网站建设、成都网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元曲江做网站,已为上家服务,为曲江各地企业和个人服务,联系电话:18980820575
public class JieChenghe{
public static void man(String args[]){
double sum=0;
for(int i=1;i=9;i=i+2){
sum=sum+jiecheng(i);
System.out.println("1-9的奇数阶乘和为:"+sum);
}
}
public static long jiecheng(int i){
if(i==1){
return 1;
}else{
return i*jiecheng(i-1);
}
}
对于一般的比如20以内的阶乘 可以用int 但是你这个太大了
long都不够 用double了 没有限制输出格式 所以是科学计数的 而且用double小数点后会出现误差 这个知道吧 文件名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);
}
}
}
如果实在要求这么大的阶乘 可以用数组方式解决
给你贴段代码 以前网上某位写的 忘记了 求阶乘的
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; // 求出来的值的位数
System.out.println("------用数组解决大数问题---------");
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("");
}
}
启发一下就好啦~
public class Test
{public void calSum()
{long num = 9; // 数列的各个项,后面会改变其值,使用 long, 因为 int 会超范围
long sum = num; // 存放数列和,使用 long, 因为 int 会超范围
// 因为只到9999999999,所以只用 9 次
for (int i = 0; i 9; i++)
{num = num * 10 + 9; // 根据数列当前项得到下一项的值
sum += num; // 计算目前为止所有数的和}
System.out.println("9+99+999+...+9999999999=" + sum);}
public static void main(String[] argv)
{Test test = new Test();
test.calSum();}}
或者public class Test{ public void calSum() { long num = 9; // 数列的各个项,后面会改变其值,使用 long, 因为 int 会超范围 long sum = num; // 存放数列和,使用 long, 因为 int 会超范围 // 因为只到9999999999,所以只用 9 次 for (int i = 0; i 9; i++) {num = num * 10 + 9; // 根据数列当前项得到下一项的值 sum += num; // 计算目前为止所有数的和 } System.out.println("9+99+999+...+9999999999=" + sum) } public static void main(String[] argv) {Test test = new Test(); test.calSum();}