استفاده از Golang در سایت کوئرا

سایت کوئرا یک سایت تقویت مهارت‌های برنامه‌نویسی بر اساس حل سوالات می‌باشد. در این سایت شما می‌بایست برنامه‌هایی بنویسید که بتوانند ساختار ورودی مشخص شده را دریافت و خروجی مناسب را تولید کنند. این سایت از زبان‌های برنامه‌نویسی مختلفی پشتیبانی می‌کند که یکی از آن‌ها زبان Go می‌باشد. این زبان شباهت زیادی به زبان C دارد.

برخی از این سوالات ورودی‌ها و خروجی‌ها بزرگی دارند تا برنامه‌ی شما را از نظر زمانی نیز مورد آزمایش قرار دهند. در یکی از این سوالات برنامه شما می‌بایست مجموعه‌ای اعداد را به صورت زیر دریافت کند:

125 s
1 2 3 4 5

خط اول نمایش دهنده‌ی تعداد اعداد و خط دوم اعداد می‌باشند. برای این منظور در زبان Go از روند زیر استفاده می‌کنیم:

برای شما
12345678var n int
fmt.Scanf("%d", &n)

a := make([]int, n)

for i := 0; i < n; i++ {
     fmt.Scanf("%d", &a[i])
}

اما در کمال ناباوری این کد زمانی که اندازه‌ی ورودی بزرگ می‌باشد خطای Runtime تولید می‌کند. برای حل این موضوع این کد را به شکل زیر تغییر می‌دهیم:

12345678910111213141516var n int
fmt.Scanf("%d", &n)

 a := make([]int, n)

reader := bufio.NewReader(os.Stdin)

aMembers, _ := reader.ReadString('\n')
 aMembers = strings.TrimSuffix(aMembers, "\n")

aNumbers := strings.Split(aMembers, " ")

for i := 0; i < n; i++ {
    ne, _ := strconv.Atoi(aNumbers[i])
    a = append(a, ne)
}

به این ترتیب مساله حل می‌شود.

نویسنده مطلب: پرهام الوانی

منبع مطلب

به فکر سرمایه‌گذاری هستی؟

با هر سطحی از دانش در سریع‌ترین زمان با آموزش گام به گام، سرمایه گذاری را تجربه کن. همین الان میتونی با لینک زیر ثبت نام کنی و ۱۰ درصد تخفیف در کارمزد معاملاتی داشته باشی

ثبت نام و دریافت جایزه
ممکن است شما بپسندید
نظر شما درباره این مطلب

آدرس ایمیل شما منتشر نخواهد شد.