62,623
社区成员
发帖
与我相关
我的任务
分享package com.sxf;
public class ModTest {
/**
* @param args
*/
public long modCompute(String s,int n){
int len= Integer.toString(n).length();
long remainder = 0;
for(int i = 0;i<s.length();i =i + len){
String stemp =null;
if ( i + len < s.length()){
stemp = s.substring(i, i + len);
}else{
stemp = s.substring(i);
}
remainder =( remainder *Math.round(( Math.pow(10,len))) +Long.parseLong(stemp)) %n;
}
return remainder;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
ModTest t = new ModTest();
System.out.print(t.modCompute("10112154546456454687978979879797979787545457876245487848787875454", 7));
}
}
package com.sxf;ublic class Test {
/**
* 求一个由数字组成的任意长度的字符串能否被N整除
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = "54354358093245892583457839730957349857394857367935384895";
int n= 7;
checkModN(str, n);
}
private static void checkModN(String str, int n) {
String temp = str;
int e = 0;
for(int i=0;i<temp.length();i++) {
int h = Integer.parseInt(temp.substring(i,i+1));
e = (e*10 + h)%n;
}
System.out.println("e = "+ e);
if(0==e) {
System.out.println("This number can be mod by "+n);
}else {
System.out.println("This number cann't be mod by "+n);
System.out.println("You can add "+(n-e)+" or sub "+ e);
}
}
} public static void main(String[] args) {
String str = "5673454322654648748998323211231231231231231231231231232145668127348612734128637423123";
int remainder = 0;
for (int i = 0; i < str.length(); i += 8) {
String temp;
if (i + 8 < str.length()) {
temp = str.substring(i, i + 8);
} else {
temp = str.substring(i);
}
remainder = Integer.parseInt(remainder + temp) % 7;
}
System.out.println(str);
System.out.println("除以7的余数为" + remainder);
}
public class BigMode {
public static void main(String[] args) {
String s = "123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789839999999999999999999999456789032512847890120347141049814708971625489371245379999994729748743945389024808078";
int j = 0;
int k = 0;
while (true) {
if (s.length() > 9) {
int i = Integer.parseInt(s.substring(0, 9));
s = s.substring(9);//此处9位表示最大可以是9亿,因为int最大是20多亿,如果用long,可以再长点
j = i % 7;
if (j != 0) {
s = j + s;
}
} else {
int i = Integer.parseInt(s);
j = i % 7;
break;
}
}
System.out.println("s是否能被7整除" + (j == 0)+",余数:"+j);
}
}
public int Mod(String data, int num) { //data是任意长度的字符串
int result = 0;
for (char c : data.toCharArray()) { //这里是按一位一位取,也可以用substring按多位取,转为int或long范围内的数据计算
result = ((result%num)*10 + ((int)(c-'0'))%num) % num;
}
return result;
} public int Mod(String data, int num) { //data是任意长度的字符串
int result = 0;
char[] ca = data.toCharArray();
for (int i=ca.length-1; i>=0; i--) {
result = ((((int)(c[i]-'0'))%num)*10 + result%num) % num;
}
return result;
}