1. 程式人生 > >藍橋杯練習系統之基礎練習

藍橋杯練習系統之基礎練習

BASIC-13 數列排序

題目

題解

1234567891011121314151617import java.util.Arrays;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner reader = new Scanner(System.in); int n = reader.nextInt(); final int MAX = n; int arry[] = new int[MAX]; for(int i = 0; i < n; ++i) { arry[i] = reader.nextInt();
} Arrays.sort(arry); for(int i = 0; i < n; ++i) { System.out.print(arry[i]+" "); } }}

BASIC-12 十六進位制轉八進位制

題目

題解

123456789101112131415161718192021222324252627282930313233343536373839import java.util.Arrays;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner in=new
Scanner(System.in);
int n=in.nextInt(); String [] result=new String[11]; for(int i=0;i<n;i++){ String h=in.next(); StringBuilder tempB=new StringBuilder(); for(int m=0;m<h.length();m++){ char numH=h.charAt(m); String b=Integer.toBinaryString(Integer.valueOf(String.valueOf(numH), 16
));
for(int k=b.length();k<4;k++){ b='0'+b; } tempB.append(b); } StringBuilder tempO=new StringBuilder(); int addZero=3-tempB.length()%3; for(int p=0;p<addZero;p++){ tempB=new StringBuilder("0").append(tempB); } for(int m=0;m<tempB.length();m+=3){ String numB=tempB.substring(m, m+3); String o=Integer.toOctalString(Integer.valueOf(String.valueOf(numB), 2)); tempO.append(o); } result[i]=tempO.toString().replaceAll("^(0+)", ""); } for(int i=0;i<n;i++){ System.out.println(result[i]); } }}

BASIC-11 十六進位制轉十進位制

題目

題解

12345678910111213141516171819202122232425262728293031323334353637#include <stdio.h>#include <string.h>#include <malloc.h>#include <math.h>int main(){ int index = 0, strLength = 0; long long dec = 0; char * hex = (char *) malloc ( sizeof(char) ); scanf("%s", hex); strLength = strlen(hex); for (index = 0; index < strLength; ++index) { switch (*(hex+index)) { case '0': dec += 0 * pow(16, (strLength-index-1));break; case '1': dec += 1 * pow(16, (strLength-index-1));break; case '2': dec += 2 * pow(16, (strLength-index-1));break; case '3': dec += 3 * pow(16, (strLength-index-1));break; case '4': dec += 4 * pow(16, (strLength-index-1));break; case '5': dec += 5 * pow(16, (strLength-index-1));break; case '6': dec += 6 * pow(16, (strLength-index-1));break; case '7': dec += 7 * pow(16, (strLength-index-1));break; case '8': dec += 8 * pow(16, (strLength-index-1));break; case '9': dec += 9 * pow(16, (strLength-index-1));break; case 'A': dec += 10 * pow(16, (strLength-index-1));break; case 'B': dec += 11 * pow(16, (strLength-index-1));break; case 'C': dec += 12 * pow(16, (strLength-index-1));break; case 'D': dec += 13 * pow(16, (strLength-index-1));break; case 'E': dec += 14 * pow(16, (strLength-index-1));break; case 'F': dec += 15 * pow(16, (strLength-index-1));break; default:printf("Error hex data.\n"); break; } } printf("%lld\n", dec); return 0;}

BASIC-10 十進位制轉十六進位制

題目

題解

1234567891011121314151617181920212223242526272829303132333435363738#include <stdio.h>#include <malloc.h>int main(){ int res = 0, mod = 0, dec = 0, index = 0; char * hex = (char *) malloc (sizeof(char)); scanf("%d", &dec); res = dec; do { mod = res % 16; switch(mod) { case 0: *(hex+index) = '0'; break; case 1: *(hex+index) = '1'; break; case 2: *(hex+index) = '2'; break; case 3: *(hex+index) = '3'; break; case 4: *(hex+index) = '4'; break; case 5: *(hex+index) = '5'; break; case 6: *(hex+index) = '6'; break; case 7: *(hex+index) = '7'; break; case 8: *(hex+index) = '8'; break; case 9: *(hex+index) = '9'; break; case 10: *(hex+index) = 'A'; break; case 11: *(hex+index) = 'B'; break; case 12: *(hex+index) = 'C'; break; case 13: *(hex+index) = 'D'; break; case 14: *(hex+index) = 'E'; break; case 15: *(hex+index) = 'F'; break; default:break; } ++index; } while ( (res = res / 16) != 0 ); for (index = index-1; index >= 0; --index) { printf("%c", *(hex+index)); } return 0;}

BASIC-9 特殊迴文數

題目

題解

1234567891011121314151617181920212223242526272829303132333435#include <stdio.h>int main(){ unsigned int n = 0; int a, b, c; scanf("%d", &n); for (a = 1; a <= 9; ++a) { for (b = 0; b <= 9; ++b) { for (c = 0; c <= 9; ++c) { if ( n == (a+b)*2 + c ) { printf("%d\n", (a*10000+b*1000+c*100+b*10+a)); } } } } // 沒有把迴圈合併在一起的原因是題目要求 從小到大 輸出 for (a = 1; a <= 9; ++a) { for (b = 0; b <= 9; ++b) { for (c = 0; c <= 9; ++c) { if ( n == (a+b+c) * 2 ) { printf("%d\n", (a*100000+b*10000+c*1000+c*100+b*10+a)); } } } } return 0;}

BASIC-8 迴文數

題目

題解

12345678910111213#include <stdio.h>int main(){ int a, b; for (a = 1; a <= 9; ++a) { for (b = 0; b <= 9; ++b) { printf("%d\n", (a*1000+b*100+b*10+a)); } } return 0;}

BASIC-7 特殊的數字

題目

題解

1234567891011121314151617181920#include <stdio.h>#include <math.h>int main(){ int a, b, c; for (a = 1; a <= 9; ++a) { for (b = 0; b <= 9; ++b) { for (c = 0; c <= 9; ++c)