सी ++, 926 बाइट्स
#include<iostream>
#include<string>
#include<math.h>
#define S string
using namespace std;S N(S x,int y){S z="";for(int q=0;q<y;q++){z+=x;}return z;}int main(){int n=0,t=0,g=0,fi=1;cin>>n;int t1[]={0,0,n,0};int t2[]={0,n-2,n-2,1};for(int k=0;k<n+1;k++){if((k>(n-2)/2)&&(k<(n+5)/2)){if(g==0){S d,e;if(!((n+1)%4)){cout<<N("* ",t2[0])<<" *"<<N(" *",t2[0])<<endl<<N("* ",(n+1)/2)<<endl<<N("* ",t2[0])<<"***"<<N(" *",t2[0])<<endl;t2[2]=n-8-(n-11);t1[2]=n-4-(n-11);t1[0]--;t2[3]--;t1[3]-=2;}else{cout<<N("* ",t1[0])<<"***"<<N(" *",t2[0])<<endl<<N("* ",(n+1)/2)<<endl<<N("* ",t1[0])<<"* "<<N(" *",t2[0])<<endl;t2[0]--;t1[2]+=2;t2[2]+=6;t1[3]--;t2[1]-=2;t2[3]-=2;}fi=0;}g=5;}else{t=1-t;int*tR;tR=t?t1:t2;cout<<N("* ",tR[0])<<N(t?"*":" ",tR[2])<<N(" *",tR[3])<<endl;if(fi){if(t){t1[0]+=k==0?0:1;t1[2]-=k==0?2:4;t1[3]++;}else{t2[0]++;t2[2]-=4;t2[3]++;}}else{if(t){t1[0]--;t1[2]+=4;t1[3]--;}else{t2[0]--;t2[2]+=4;t2[3]--;}}}}return 0;}
यह सुरुचिपूर्ण नहीं है, लेकिन यह बड़े n के लिए ज्यादा मेमोरी नहीं लेता है। इसके अलावा, वहाँ लगभग (लगभग निश्चित रूप से) कर रहे हैं कि लगभग 20 वर्णों आगे गोल्फ हो सकता है, लेकिन मैं अब इसे देखने के लिए खड़े नहीं हो सकते।
संक्षिप्त विवरण:
यह सर्पिलों में लाइनों को दो प्रकारों में विभाजित करता है: बीच में ****** वाले और बीच में \ _ s \ s \ s \ s वाले। फिर यह स्पष्ट है कि प्रत्येक रेखा कई "*", मध्य और कुछ "*" से बनी है। यदि आप पैटर्न को लंबे समय तक देखते हैं तो वास्तव में यह पता लगाना कि प्रत्येक चीज कितनी सरल है। मुश्किल चीज सर्पिल के केंद्र को प्रिंट कर रही थी जिसे मैं मूल रूप से एक सशर्त का उपयोग करके कोडित करता था। यह समाप्त होने के कारण उपयोगी हो गया क्योंकि *** और \ s \ s की रेखाएँ विषम / यहाँ तक कि स्विच हैं।
टेस्ट:
इनपुट: 55 (मुझे लगता है कि बड़े लोग सबसे अच्छे लगते हैं)
आउटपुट:
************************************************** *****
*
************************************************** *** *
* * *
* ************************************* * *
* * * * *
* * ***************************************
* * * * * * *
* * * ***************************************
* * * * * * * * *
* * * * *************************************
* * * * * * * * * * *
* * * * * *********************************
* * * * * * * * * * * * *
* * * * * * *********************************
* * * * * * * * * * * * * * *
* * * * * * * *********************************
* * * * * * * * * * * * * * * * *
* * * * * * * * ***********************************
* * * * * * * * * * * * * * * * * * * *
* * * * * * * * * ***************** * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * ************* * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * ********* * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * ***** * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * मेरा कार्यक्रम यहाँ एक जगह जोड़ता है btw
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * ******* * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * *********** * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * *************** * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * *********************************
* * * * * * * * * * * * * * * * * * *
* * * * * * * * *********************************
* * * * * * * * * * * * * * * *
* * * * * * * *******************************
* * * * * * * * * * * * * *
* * * * * * *********************************
* * * * * * * * * * * *
* * * * * *********************************
* * * * * * * * * *
* * * * ***********************************
* * * * * * * *
* * * *********************************
* * * * * *
* * *********************************** *
* * * *
* ************************************* ** *
* *
************************************************** *****
इनपुट: 3
आउटपुट:
***
*
* *
***
नोट: मैं एक कंप्यूटर वैज्ञानिक / सीएस छात्र नहीं हूं, और मुझे नहीं पता कि यह कैसे साबित किया जाए कि यह O (log n) मेमोरी का उपयोग करता है। मैं केवल प्रश्न में लिंक के आधार पर क्या कर सकता हूं, इस पर काम कर सकता हूं। यदि कोई व्यक्ति इस उत्तर को मान्य करता है तो मैं उसकी पुष्टि / इनकार कर सकता / सकती हूं। इस उत्तर की वैधता के लिए मेरा तर्क यह है कि यह कभी भी इनपुट के अलावा n के आधार पर आकार के किसी भी चर को संग्रहीत नहीं करता है। इसके बजाय, एन के लिए चलने वाला लूप एक एन के आधार पर पूर्णांक मानों की गणना करता है। इनपुट की परवाह किए बिना उन मानों की समान संख्या है।
नोट 2: मध्य से निपटने के मेरे तरीके के कारण यह n = 1 के लिए काम नहीं करता है। यह सशर्त के साथ ठीक करना आसान होगा, इसलिए यदि कोई मेरे जवाब के कुछ पात्रों के भीतर है, तो मैं इसे ठीक कर दूंगा;)
इसके साथ विचारधारा पर खेलते हैं।
nको O (1) मेमोरी में स्टोर नहीं कर सकता है ।