六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 52|回复: 0

关于判断无限大数字字符串能否被6整除问题的解决方法

[复制链接]

升级  46%

33

主题

33

主题

33

主题

秀才

Rank: 2

积分
119
 楼主| 发表于 2013-1-27 05:21:31 | 显示全部楼层 |阅读模式
import java.util.Random; public class TestBigString { /**  * @param args  */ public void test(String s) {//将字符串转化成数组  char[] a = s.toCharArray();  test1(a); } public void test1(char[] a) {  int temp1 = 0;  String tem="";  for (char c : a) {//便利数组从高位开始 对6取余数,然后余数*10+下一位继续相同操作   tem = String.valueOf(c);   temp1 = temp1 * 10 + Integer.parseInt(tem);   temp1 = temp1 % 6;  }  if (temp1 != 0) {//判断余数 如果是0 能整除   System.out.println("不能被6整除");  } else   System.out.println("能被6整除"); } public static StringBuffer generate() {  StringBuffer bf=new StringBuffer();  for (long i = 0; i < 10000000; i++) {   Random rand = new Random();   int temp = rand.nextInt(10);   bf.append(temp);  }  return bf; } public static void main(String[] args) {  // System.out.println(Long.parseLong(s)%6);  Long a = System.currentTimeMillis();  String s = TestBigString.generate().toString();  Long b = System.currentTimeMillis();  System.out.println(b-a);//测试 时间  System.out.println(s.length());  TestBigString tbs = new TestBigString();  Long c = System.currentTimeMillis();  tbs.test(s);  Long e = System.currentTimeMillis();  System.out.println(e-c);//测试计算用的时间2-3秒 }}
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表