1!+2!+…+100! 用JAVA怎么写?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1!+2!+…+100! 用JAVA怎么写?相关的知识,希望对你有一定的参考价值。

int ji=1; //积,设为1, 因为x*1=x;
int sum=1; //和,设为1, 因为1的阶乘为1; (也可设为0,但会增加一次运算)
for(int i=1;i<=100;i++) //1-100求和
for(int j=2;j<=i;j++) //得到 当前数的阶乘,如:5的阶乘=5*4*3*2*1 //因为sum=1,所以可从2开始
ji*=j;

sum+=ji;
ji=1;
参考技术A //可以使用大数来定义;
package org;
import java.util.*;
import java.math.*;
public class Test

public static void main(String []args)

BigDecimal s=new BigDecimal(0);
BigDecimal temp=new BigDecimal(1);
for(int i=1;i<=50;i++)
temp=temp.multiply(new BigDecimal(i));
s=s.add(temp);

System.out.println(s);

参考技术B public class Test

public static void main(String args[])

double sum=1;
for(int i=1;i<=100;i++)

sum*=i;

System.out.println("值为:"+sum);

参考技术C 留个联系方式,发给你

用Java验证姓名,年龄,电话怎么写。

在JS里面验证了一次,姓名只能为汉字,不能为空,年龄只能为数字120以前,不能为空,电话只能为数字,且只能11位,不能为空 在Java 里面怎么再去验证一次。 求大神, 谢谢!紧急,12点以前要 可以加分。
在Servlet里能直接写吗? 取得页面的值。 怎么写


1、汉字验证

这个方法改一下就行了

/**

 * 计算字符串长度. 一个汉字的长度按2计算. 如果给定的字符串为null, 返回0.

 * 

 * @param str

 *            待计算长度的字符串

 * @return 字符串长度

 */
public static int strlen(String str) 
    if (str == null || str.length() <= 0) 
        return 0;
    
    int len = 0;
    char c;
    for (int i = str.length() - 1; i >= 0; i--) 
        c = str.charAt(i);
        if ((c >= '0' && c <= '9') || (c >= 'a' &amp;& c <= 'z')|| (c >= 'A' && c <= 'Z')) //字母, 数字
            len++;
         else 
            if (Character.isLetter(c))  //中文
                len += 2;
             else  //符号或控制字符

                len++;
            
        

return len;

2、电话

我给你个思路

就是把字符串转化为数字,然后用try catch  如果呢异常就表明是数字,至于长度length一下就行了,



或用这个

邮编号码:xxx.xxxx(都为数字)
固定电话号码:xx-xxxx-xxxx(都为数字)
手机号码:xxx-xxxx-xxxx(都为数字)
一般来说,基本的校验功能留给页面去处理,可以减轻服务器的负担。建议这些功能放在页面完成。

java中的正则表达式:

/**
 * java正则表达式来判断是否EMAIL邮件
 * 
 * @param number
 *            待检测字符串
 * @return 若是返回true,否则返回false
 */

import org.apache.oro.text.regex.MalformedPatternException;
import org.apache.oro.text.regex.Pattern;
import org.apache.oro.text.regex.PatternCompiler;
import org.apache.oro.text.regex.PatternMatcher;
import org.apache.oro.text.regex.Perl5Compiler;
import org.apache.oro.text.regex.Perl5Matcher;

public static boolean checkFomatNumber(String number) 
  //*Regexp匹配模式
  //String postCodeRegexp = "([0-9]3)+.([0-9]4)+";  //邮政编码的匹配模式
  //String phoneRegexp = "([0-9]2)+-([0-9]4)+-([0-9]4)+";//固话的匹配模式   
  String mobileRegexp = "([0-9]3)+-([0-9]4)+-([0-9]4)+"; //手机的匹配模式

  PatternCompiler compiler = new Perl5Compiler();
  PatternMatcher matcher = new Perl5Matcher();
  Pattern pattern = null;

  // Initialization of compiler, matcher, and input omitted;
  try 
      //pattern = compiler.compile(postCodeRegexp);
      //pattern = compiler.compile(phoneRegexp);
      pattern = compiler.compile(mobileRegexp);

   catch (MalformedPatternException e) 
      return false;
  

  if (matcher.matches(number, pattern))
      return true;
  else
      return false;
 

3、年龄跟电话差不多,也是转换为数字,然后比较一下是否大于120

追问

在Servlet里能直接写吗? 取得页面的值。 怎么写

追答

方法你会写吧
你写三个方法
逐一验证就行了,具体的代码没有

参考技术A 在java代码里面再重新验证啊,如再验证姓名:
if(userName!=null&&userName!="")
if(userName.matches("^[\u4e00-\u9fa5]*$"))
out.println("是中文的");
else
out.println("不是中文的");

else
out.println("姓名不能为空!");
参考技术B @SuppressWarnings("serial")
public class BizException extends RuntimeException
public BizException()
super();

public BizException(String message)
super(message);

public BizException(String message, Exception innerException)
super(message, innerException);

创建这样的一个自定义异常类,在你调用的时候就抛出下面这样的异常
//如果姓名为空
if(Helper.isNullOrEmpty(film.getName()))
throw new BizException("请输入名称");

servlet
if(null == nameString)
request.setAttribute("message", "请输入名称");
disp.forward(request, response);
return;
参考技术C 判断姓名是否汉字
public boolean gbk(String str)

boolean isGB2312=false;
if(!str.equals("") && !str.equals(null))
char[] chars=str.toCharArray();

for(int i=0;i<chars.length;i++)
byte[] bytes=(""+chars[i]).getBytes();
if(bytes.length==2)
int[] ints=new int[2];
ints[0]=bytes[0]& 0xff;
ints[1]=bytes[1]& 0xff;
if(ints[0]>=0x81 && ints[0]<=0xFE && ints[1]>=0x40 && ints[1]<=0xFE)
isGB2312=true;
break;




return isGB2312;

判断年龄
public boolean isAge(String age)
boolean isTrue = false;

if(!age.equals(null) && !age.equals(""))
Pattern pattern = Pattern.compile("[0-9]*");
if(pattern.matcher(age).matches())
int ageInt = Integer.parseInt(age);
if(ageInt < 120 && ageInt > 0)

isTrue = true;







return isTrue;


判断电话
public boolean isTel(String tel)
boolean isTrue = false;

if(!tel.equals(null) && !tel.equals(""))
Pattern pattern = Pattern.compile("[0-9]*");
if(pattern.matcher(tel).matches())
int telInt = Integer.parseInt(tel);
if(tel.length() < 11)

isTrue = true;







return isTrue;


直接编的,试试看OK不。追问

在Servlet里能直接写吗? 取得页面的值。 怎么写

本回答被提问者采纳
参考技术D 这个为啥不直接百度搜索呢

以上是关于1!+2!+…+100! 用JAVA怎么写?的主要内容,如果未能解决你的问题,请参考以下文章

java怎么用循环写100个A的字符串?

C++从1加到100的程序怎么写?

如何直接用java Swing写日期下拉列表框

Java单元测试

java 怎么用10个线程去读取文件夹里100个txt文件中的内容,读完之后同步写到一个文件中去。

使用java打开jar包失败