1031 : [기초-출력변환] 10진수 한 개 입력받아 8진수로 출력하기 with Swift
28. 콘솔에서 10진수를 입력받아 8진수로 출력하시오. ( 입력 범위 int )
입력 예시
10
출력 예시
12
JAVA
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int value = scan.nextInt();
System.out.println(Integer.toOctalString(value));
}
}
Swift 4.2
import Foundation
func octalTrans(value:Int) -> [Int] {
var flag = value
var result = [Int]()
while flag >= 8 {
result.append(flag % 8)
flag = flag / 8
if flag < 8 { result.append(flag) }
}
result.reverse()
return result
}
let line = readLine()
//let testValue = [124,235,65767,453,434365,57,24]
if line != nil {
if let value = Int(line!){
let octalArray = octalTrans(value: value)
var printValue = String()
for o in octalArray {
printValue += "\(o)"
}
print(printValue)
}
}
java에서는 손쉽게 진수 변환하는게 있는데 swift는 잘안보이네요.
아마 있을거라 생각하는데 찾아도 잘안나와서 그냥 만들어봤습니다.
테스트는 몇개해봤는데 되긴하는데 안될지도 뭔가 안되는게 있을지도 몰라요...
https://codeup.kr/problem.php?id=1031
1032 : [기초-출력변환] 10진 정수 한 개 입력받아 16진수로 출력하기1 with Swift
29. 콘솔에서 10진수를 입력받아 16진수로 출력하라.
입력 예시
255
출력 예시
ff
JAVA
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int value = scan.nextInt();
scan.close();
System.out.println(Integer.toHexString(value));
}
}
Swift 4.2
import Foundation
func trans9over(target:Int) -> String {
var result:String
switch target {
case 10: result = "a"
case 11: result = "b"
case 12: result = "c"
case 13: result = "d"
case 14: result = "e"
case 15: result = "f"
default: result = ""
}
return result
}
func hexTrans(value:Int) -> [String] {
var flag = value
var result = [String]()
while flag >= 16 {
let mod = flag % 16
if mod > 9 {
result.append(trans9over(target: mod))
} else { result.append("\(flag % 16)") }
flag = flag / 16
if flag < 16 {
if flag > 9 {
result.append(trans9over(target: flag))
} else { result.append("\(flag)") }
}
}
result.reverse()
return result
}
let line = readLine()
if line != nil {
if let value = Int(line!){
let hexArray = hexTrans(value: value)
var printValue = String()
for h in hexArray {
printValue += "\(h)"
}
print(printValue)
}
}
;;;
뭔가 더 예쁘고 깔끔하게 하는 방법이 있을것 같으나 머리가 멍하네요...
특시 10이상을 문자로 표현하려고할때의 부분이 맘에 걸립니다
스위프트는 완전히 처음부터 독학이고 서적으로 차근차근 시작한게 아니라 솔직히 부족한 부분을 많이 느끼고 있습니다.
https://codeup.kr/problem.php?id=1032
1033 : [기초-출력변환] 10진 정수 한 개 입력받아 16진수로 출력하기2 with Swift
30. 콘솔에서 10진수를 입력받아 16진수로 출력하라.
입력 예시
255
출력 예시
FF
JAVA
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int value = scan.nextInt();
scan.close();
String printValue = String.format("%X", value);
System.out.println(printValue);
}
}
Swift 4.2
import Foundation
func trans9over(target:Int,isLowercase:Bool) -> String {
var result:String
switch target {
case 10: result = "a"
case 11: result = "b"
case 12: result = "c"
case 13: result = "d"
case 14: result = "e"
case 15: result = "f"
default: result = ""
}
if isLowercase {
return result
} else {
return result.uppercased()
}
}
func hexTrans(value:Int,isLowercase:Bool) -> [String] {
var flag = value
var result = [String]()
while flag >= 16 {
let mod = flag % 16
if mod > 9 {
result.append(trans9over(target: mod, isLowercase: isLowercase))
} else { result.append("\(flag % 16)") }
flag = flag / 16
if flag < 16 {
if flag > 9 {
result.append(trans9over(target: flag, isLowercase: isLowercase))
} else { result.append("\(flag)") }
}
}
result.reverse()
return result
}
let line = readLine()
if line != nil {
if let value = Int(line!){
let hexArray = hexTrans(value: value, isLowercase: false)
var printValue = String()
for h in hexArray {
printValue += "\(h)"
}
print(printValue)
}
}
이전이랑 다른건 딱히 없습니다...
1032항 문제 소스에서 isLowercase라는 변수하나 추가했을뿐입니다.
문자열 클래스에선 lowercased , uppercased 라는게 있어서 그걸 써봤습니다.
https://codeup.kr/problem.php?id=1033
'iOS > CodeUP - 기초100 With Swift' 카테고리의 다른 글
1038,1039,1040 [기초-산술연산] 합출력,부호변경 with Swift (0) | 2019.07.22 |
---|---|
1034,1035,1036,1037 [기초-출력변환] 진수 변환 문제 with Swift (0) | 2019.07.12 |
1028,1029,1030 [기초-데이터형] 입력받아 그대로 출력하기2-3 with Swift (0) | 2019.07.09 |
1026,1027 [기초-입출력] 형식 맞춰 출력하기 with Swift (0) | 2019.07.09 |
1023,1024,1025 [기초-입출력] 입력받아 출력하기 with Swift (0) | 2019.07.08 |