import java.util.ArrayList;
import java.util.HashMap;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
while(in.hasNext())
{
int n=in.nextInt();
int[] num=new int[n];
for(int i=0;i<n;i++){
num[i]=in.nextInt();
}
int sum=gets(num);
// for(int i=0;i<n;i++){
// for(int j=0;j<n;j++){
// if(i==j){
// continue;
// }else{
// int yunum2=(int) (num[i]%7*Math.pow(10, (num[j]+"").length()))+num[j];
// if(yunum2%7==0){
// sum++;
// }
// }
// }
// }
System.out.println(sum);
}
}
public static int gets(int[] num){
int sum=0;
int n=num.length;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(i==j){
continue;
}else{
int yunum2=(int) (num[i]%7*Math.pow(10, (num[j]+"").length()))+num[j];
if(yunum2%7==0){
sum++;
}
}
}
}
return sum;
}
}
我也是这样做的,但是时间超限,通过率70%。我的tmp用的是 long。
import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); int[] arr = new int[n]; for(int i = 0; i < n; i ++) { arr[i] = in.nextInt(); } long count = 0; for(int i = 0; i < n; i ++) { for(int j = 0; j < n; j ++) { if(i != j) { int remain = arr[i] % 7; String str = (remain == 0 ? "" : "" + remain); str += arr[j]; long tmp = Long.parseLong(str); // System.out.println(tmp); if(tmp % 7 == 0) { count ++; } } } } System.out.println(count); } }
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int N = scanner.nextInt();
long[] a = new long[N];
int number = 0;
for(int i = 0; i < N; i++){
if(i == 0){
a[0] = scanner.nextLong();
continue;
}
int c = i-1;
a[i] = scanner.nextLong();
while(c >=0){
String ai = String.valueOf(a[i]);
String ac = String.valueOf(a[c]);
System.out.println(a[i] + " " + a[c]);
System.out.println(a[c] + " " + a[i]);
if(Long.valueOf(ai + ac)%7 ==0){
// System.out.println(a[i] + " " + a[c]);
number++;
}
if(Long.valueOf(ac + ai)%7 ==0){
// System.out.println(a[i] + " " + a[c]);
number++;
}
c--;
}
}
System.out.println(number);
}
}
百分之70....
本地测试用例都可以,大数也没问题。网页上就不行。。是因为不能使用Math么????
package com.danny.mt; import java.math.BigInteger; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str1= sc.next(); int n = Integer.parseInt(str1); Scanner sc1 = new Scanner(System.in); String str2= sc1.nextLine(); String[] strarr = str2.split("\\s+"); int count = 0; String str3 = ""; for(int i = 0; i < n; i++){ for(int j = 0; j < n; j++){ if(i!=j){ str3 = strarr[i]+strarr[j]; BigInteger b1= new BigInteger(str3); BigInteger b2= new BigInteger("7"); BigInteger b3=b1.mod(b2); if(b3.intValue()==0){ count++; } } } } System.out.print(count); } }
#include <stdio.h> int main() { int n,l,i,j,o,p,q; int array[100]; int num=0; int count1,count2,count3; int k=1; int m=1; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&l); array[i]=l; } for(i=0;i<n-1;i++) { count1=array[i]; for(j=i+1;j<n;j++) { count2=array[j]; do{ count2=count2/10; k++; }while(count2>=10); for(p=0;p<k;p++) { m=m*10; } count3=count1*m+array[j]; m=1; k=1; if(count3%7==0) { num++; } } for(o=i+1;o<n;o++) { count2=array[o]; do{ count1=count1/10; k++; }while(count1>=10); for(q=0;q<k;q++) { m=m*10; } count3=count2*m+count1; m=1; k=1; if(count3%7==0) { num++; } } } printf("%d",num); return 0; }