竞赛 西安2016届校园招聘练习(A卷)

一、整数分隔

使用递归的话肯定会溢出,只能用迭代

import java.util.Scanner;public class Main {(String[] args) {Scanner s = new Scanner(System.in);while (s.hasNextInt()) {int n = s.nextInt();int[] f = new int[1000001];f[1] = 1;for (int i = 2; i <= n; i++) {if (i % 2 == 0)f[i] = (f[i – 1] + f[i / 2]) % 1000000000;elsef[i] = f[i – 1];}System.out.println(f[n]);}}}二、大数求和

位操作法 Java的BigDecimal类

三、整数排序

;int main(){string str;cin >> str;vector< int > ivec;int len = str.size();int bi=0,ei=0,num=0,dim=1;for(int i=0; i < len; i++){if(str[i] == ‘,’ || i == len-1){ei = i;if(i == len-1)ei=len;while(ei > bi){num += (str[–ei]- ‘0’)*dim;dim *= 10;}ivec.push_back(num);num=0;dim=1;bi=i+1;}}sort(ivec.begin(),ivec.end());int min_num = 0, max_num = 0;int len1 = ivec.size();for(int i=0; i < len1; i++){min_num =max_num = ivec[i];cout << min_num << ” “;while( ivec[i+1] – 1 == ivec[i]){max_num = ivec[i+1];i++;}if( max_num != min_num)cout << max_num << ” “;}ivec.clear();return 0;}import java.util.Arrays;import java.util.Scanner;public class Main {(String[] args) {Scanner s = new Scanner(System.in);while (s.hasNext()) {String str = s.nextLine();String[] num = str.split(“,”);int[] a = new int[num.length];for (int i = 0; i < num.length; i++) {a[i] = Integer.valueOf(num[i]);}Arrays.sort(a);int min_num = 0, max_num = 0;for (int i = 0; i < a.length; i++) {min_num = max_num = a[i];System.out.print(min_num + ” “);if (i == a.length – 1)break;while (a[i + 1] – 1 == a[i]) {max_num = a[i + 1];i++;if (i == a.length – 1)break;}if (max_num != min_num)System.out.print(max_num + ” “);}}}}

,路灯和我之间,究竟谁是谁的过客,

竞赛 西安2016届校园招聘练习(A卷)

相关文章:

你感兴趣的文章:

标签云: