Practice



/*--數組練習--*/
//練習 斐波那契數列的第n項值
///                前n項和
// 數組解決 缺點 空間浪費較多  n不能太大
// int n = 3;
//
// int[] arr=new int[n];
// arr[0] = 1;
// arr[1] = 1;
// for(int i=2; i<arr.length;i++){
// arr[i] = arr[i-1]+arr[i-2];
// }
//
// //求和  
// int sum = 0;
// for(int i=0;i<arr.length;i++){
//// System.out.print(arr[i] +" ");
// sum+=arr[i];
// }
// System.out.println("sum:"+sum);


//--數字環問題--
//練習    {'a','b','c','d'}  位置整體向左移動1位
//      {'b','c','d','a'}
//       arr[i]=arr[i+1]
//   0  1   2   3
//   a  b   c   d

// char[] arr = {'R','b','X','d'}; // 0~3
// char tmp = arr[0];
//
// //邏輯平移
// for(int i=0; i<arr.length-1;i++){
// arr[i] = arr[i+1];
// }
// arr[arr.length-1] = tmp;
//
// //展示結果
// for (int i = 0; i < arr.length; i++) {
// System.out.print(arr[i] +" ");
// }


//練習  給定一個int數組 (元素只有0-9)  加密  
//     arr[i] +=1  9變爲0
// 列:  1 2 3 4 8 9 -> 2 3 4 5 9 0
// int[] arr = {1,2,3,8,9};
// int k = 43;
//
//
// //邏輯加密
// for (int i = 0; i < arr.length; i++) {
// arr[i] = (arr[i]+k)%10; //%元素的種類個數
// }
//
// //輸出結果
// for (int i = 0; i < arr.length; i++) {
// System.out.print(arr[i]+" ");
// }

//練習  char型數組   加密 k=1  a->b b->c ... z->a
//  a  b  c  d .....  x  y z
//  0  1  2  3 .....  23  24 25
//  k=5
//   (原始+k)%總個數

System.out.print("輸入原文:");
String strIn = scanner.nextLine();
char[] arr  = strIn.toCharArray();

System.out.print("輸入密鑰:");
int k = Integer.parseInt(scanner.nextLine());

for(int i=0;i<arr.length;i++){
//小寫字母 具體處理
if (arr[i]>='a' && arr[i]<='z') {
arr[i] = (char) ((arr[i]-'a'+k)%26 + 'a');

//大寫字母 具體處理
}else if(arr[i]>='A' && arr[i]<='Z'){
arr[i] = (char) ((arr[i]-'A'+k)%26 + 'A');

//數字 具體處理
}else if(arr[i]>='0' && arr[i]<='9'){
arr[i] =(char) ((arr[i]-'0'+k)%10 +'0');

}//其他 怎麼處理 不轉換
}

//輸出結果
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]);
}




}


}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章