এমন একটি প্রোগ্রাম লিখুন যা ASCII শিল্পের সাথে দীর্ঘ বিভাগকে কল্পনা করে। আপনার পছন্দসই ইনপুট ফর্ম্যাটটি ব্যবহার করে ইনপুটটিতে দুটি পূর্ণসংখ্যা, একটি অঙ্ক এবং ডিনোমিনেটর থাকে।
উদাহরণ:
1234 ÷ 56:
22
----
56|1234
112
---
114
112
---
2
1002012 ÷ 12:
83501
-------
12|1002012
96
---
42
36
--
60
60
--
12
12
--
0 ÷ 35
0
-
35|0
নিয়মাবলী:
- প্রোগ্রামিং ভাষার বিভাগ অপারেটরের ব্যবহার অনুমোদিত।
- বড় পূর্ণসংখ্যার সমর্থনও অনুমোদিত।
- ধারাবাহিকতার জন্য:
- ভাগফলটি শূন্য হলে ডাইভিং বোর্ডের শেষে একটি একক শূন্য প্রিন্ট করুন।
- বাকীটি যদি শূন্য হয় তবে এটি মুদ্রণ করবেন না।
- কোনও সংখ্যায় শীর্ষস্থানীয় জিরো মুদ্রণ করবেন না।
- শেষে অতিরিক্ত নিউলাইনগুলি এবং ডানদিকে ফাঁকা স্থানগুলি অনুমোদিত।
- কয়েকটি সংখ্যক চরিত্রের সমাধান সমাধান।
সীমা:
- 0 <= সংখ্যা <= 10 72 - 1
- 1 <= ডোনমোনেটর <= 9999999
এটি সূচিত করে যে আউটপুটটি কখনই 80 কলামের চেয়ে বেশি প্রশস্ত হবে না।
পরীক্ষার স্যুট এবং নমুনা বাস্তবায়ন:
আপনি ব্যবহার করতে পারেন দীর্ঘ division.c ( সারকথা আপনার প্রোগ্রাম পরীক্ষা করার জন্য)। এটি আসলে ভিতরে সি প্রোগ্রাম সহ একটি বাশ স্ক্রিপ্ট। পরীক্ষার স্যুটটিতে আপনার প্রোগ্রামটি শুরু করার জন্য এটি স্নিগ্ধ করুন রেফারেন্স বাস্তবায়ন দেখতে নীচে সি কোডটি দেখুন। স্যাম্পল প্রোগ্রাম বা টেস্ট স্যুটে কোনও সমস্যা আছে কিনা তা দয়া করে আমাকে জানান।
$ ./long-division.c 10 7
1
--
7|10
7
--
3
$ ./long-division.c
PASS 1234 ÷ 56
PASS 1002012 ÷ 12
PASS 1 ÷ 1
--- snip ---
Score: 35 / 35
All tests passed!
সম্পাদনা করুন: অনুরোধ করে, আমি পরীক্ষার স্যুট ইনপুট এবং প্রত্যাশিত আউটপুটটিকে পাঠ্য ফাইলগুলিতে ( সংক্ষেপে ) রেখেছি put নমুনা ব্যবহার (বাশ):
cat input | while read nd; do
./program $nd |
sed 's/\s*$//' | sed -e :a -e '/^\n*$/{$d;N;};/\n$/ba'
done > output
diff -u expected output
অদ্ভুত সেড কমান্ডগুলি প্রোগ্রাম আউটপুট থেকে নতুন লাইন এবং স্পেসগুলি অনুসরণ করে ফিল্টার আউট করে।