● Codeforces Round #259 (Div. 2) - A. Little Pony and Crystal Mine
پنجشنبه, ۲۰ شهریور ۱۳۹۳، ۰۲:۲۶ ب.ظ
در اینجا قصد داریم ماتریسی n × n با استفاده از کاراکترهای "D" و"*" ایجاد کنیم به طوری که یک کریستال لوزی شکل با کاراکترهای "D" در آن قابل رؤیت باشد. نگاه کردن به مثال ها شما را در فهم صورت سؤال یاری می کند...
input
7
output
***D*** **DDD** *DDDDD* DDDDDDD *DDDDD* **DDD** ***D***
ورودی:
تنها ورودی این برنامه یک عدد طبیعی فرد n با حداکثر مقدار 101 است:
n (3 ≤ n ≤ 101; n is odd)
خروجی:
کریستالی به سایز n چاپ کنید.
// A Drop of the Programming Sea - adops.blog.ir#include <algorithm> #include <iostream> #include <cstdlib> #include <cstring> #include <iomanip> #include <sstream> #include <conio.h> #include <vector> #include <cstdio> #include <deque> #include <ctime> #include <cmath> #include <stack> #include <set> #include <map> using namespace std; #define rout(n){cout << n << endl; return 0;} /************************* MY CODE *************************/ int n = 101; inline bool t(int i, int j) { int D = (i < n/2+1)? 2*i + 1 : 2*(n-i-1) + 1; int d = (n-D)/2; if(j >= d && j <= n-d-1) return true; return false; } int main() { cin >> n; for(int i=0; i<n; i++) { for(int j=0; j<n; j++) if(t(i, j)) cout << "D"; else cout << "*"; cout << endl; } }
***** **** *** ****** ** ** ****** *******
از مطالب فوق العادتون ممنونم