m3ph1st0s की प्रोग्रामिंग पहेली 1 (C ++) [बंद]


26

यह आपके लिए C ++ पज़ल्स की एक श्रृंखला है। आशा है कि आप आनंद लेंगे।

तो, पहेली नंबर 1:

निम्नलिखित कार्यक्रम को देखते हुए:

#include <iostream>
int main() 
{
   const int a=1;
   const int b=2;
   const float c=0.5;
   std::cout << a/b-a*c;
}

प्रोग्राम के अंदर कहीं भी एक नई लाइन पर कुछ कोड डालें ताकि आउटपुट 0. हो जाए। नई लाइन में AT MOST 18 अक्षर (स्पेस सहित) होंगे, और बाकी लाइनें अनमॉडिफाइड रहेंगी। स्पष्ट होने के लिए, यहां एक मान्य नए कोड का एक उदाहरण है:

#include <iostream>
int main() 
{
   const int a=1;
   const int b=2;
   int* p = NULL;
   const float c=0.5;
   std::cout << a/b-a*c;
}

15 वर्णों वाली एक नई पंक्ति सम्मिलित की गई थी, इसलिए यह ठीक है। हालाँकि यह समस्या का समाधान नहीं करता है।

यदि यह आपके लिए बहुत आसान है, तो चिंता न करें, अधिक आ रहा है !!


2
मुझे बहुत खुशी है कि कोई व्यक्ति C ++ प्रश्न कभी-कभी पोस्ट करता है! मेरा मतलब है, उन सभी पहेलियों के साथ जहां एक सी ++ समाधान 20 या 30 लाइनें होगी, फिर जे या के या गोल्फस्क्रिप्ट में समाधान पोस्ट करने वाले लोग थोड़ी देर बाद निराश हो जाते हैं।
मिस्टर लिस्टर

3
क्या परिणाम को मान्य, अच्छी तरह से परिभाषित C ++ होना चाहिए या क्या यह UB का उपयोग कर सकता है? (लेकिन मिस्टर लिस्टर की तरह, मूल कोड सी + + भी मान्य नहीं है।)
कोनराड रूडोल्फ

4
यह मान्य नहीं है। मुख्य को इंट (c ++ मानक पढ़ें)
Bћови

2
हम यहां बिंदु को याद कर रहे हैं। एक इंट और एक वापसी 0 अगर तुम मन, मैं नहीं था।
बोगदान अलेक्जेंड्रू

11
@ बोगदान: दफुक? एक के लिए, DevC ++ इतना प्राचीन रूप से प्राचीन है, यह उत्पादन अप्रासंगिक है। और दूसरी बात, किसी भी OS को किसी भी समय लक्षित करने वाले किसी भी कॉन्फ़िगरेशन में दिए गए संकलक को स्वीकार करना या न करना, यह इसे वैध C ++ नहीं बनाता है।
डेडएमजी सेप

जवाबों:


14
#define int float

के रूप में अच्छी तरह से काम करना चाहिए और एक ही लंबाई है।


जब मैं पहली बार इस विचार के साथ आया था तो यह मेरे दिमाग में था
बोगदान अलेक्जेंड्रू

5
#define int floatवास्तव में अपरिभाषित व्यवहार है। आपको खोजशब्दों को नया अर्थ देने की अनुमति नहीं है।
fredoverflow

फ्रेड, क्या आप अपने स्रोतों का हवाला दे सकते हैं? GCC cpp डॉक्स का कहना है कि "आप किसी भी मान्य पहचानकर्ता को मैक्रो के रूप में परिभाषित कर सकते हैं, भले ही वह C कीवर्ड हो।"
डेन

@ दान: C ++ मानक इसे मना करता है।
डेडएमजी सेप

3
यह यूबी हो सकता है, लेकिन कई लोकप्रिय संकलक इसे वैसे भी समर्थन करते हैं। मैंने बिल्ट-इन प्रकारों #define int ERRORके int32_tबजाय खुद को उपयोग करने के लिए मजबूर करने के लिए किया है । जब तक मैं चारों ओर पहुंच गया int main(), तब तक मैं मैक्रो के बारे में भूल गया था और सोच रहा था कि क्यों मेरा कोड संकलित नहीं करेगा।
dan04

33

हम इसे एक और दायरे में ले जाकर = 1 से छुटकारा पा सकते हैं:

#include <iostream>
main() 
{
int a=0;if(0)
    const int a=1;
    const int b=2;
    const float c=0.5;
    std::cout << a/b-a*c;
}

यह मुझे लगता है कि 13 अक्षर हैं। या बेहतर अभी तक एक नया है aकि भी 0 में परिणाम:

#include <iostream>
int main() 
{
   const int a=1;
   const int b=2;
   const float c=0.5;
if(int a=2)
   std::cout << a/b-a*c;
}

वह 11 अक्षर का है


24
#include <iostream>
main() 
{
   const int a=1;
#define a 0
   const int b=2;
   const float c=0.5;
   std::cout << a/b-a*c;
}

1 नई पंक्ति, 12 नए वर्ण


यही मैं आपके लिए प्रस्तुत करना चाहता था ... +1।
H2CO3

मेरा पहला विचार जब प्रश्न पढ़ा गया)))
क्वर्टी

23

तो, हो #define a 0गया। मैंने देखा कि पोस्ट किया गया था - बिना सोचे समझे।

हैरानी की बात है, यह पोस्ट नहीं किया गया था:

#include <iostream>
main() 
{
   const int a=1;
   const int b=2;
   const float c=0.5;
   std::cout<<0||
   std::cout << a/b-a*c;
}

14 चरस

यही करना चाहिए, है ना?


21
#include <iostream>
main() 
{
const int a=0;//\
   const int a=1;
   const int b=2;
   const float c=0.5;
   std::cout << a/b-a*c;
}

17 वर्ण।

वैसे, मूल कार्यक्रम MSVC के तहत संकलन नहीं करता है, जो शिकायत mainकरता है कि रिटर्न प्रकार नहीं है।


2
int a = 0; // \ _ भी करेगा ट्रिक
कॉपी

2
पूर्ण रूप से। लेकिन क्या यह "छोटी लाइन की जीत" प्रतियोगिता है?
श्री लिस्टर

मैंने ऐसा सोचा था, लेकिन यह नहीं है। वैसे अच्छी चाल
कॉपी

2
हां, कोडगॉल्फ एसई पर सबसे छोटा समाधान जीतता है। देखें faq
B faовић

2
@ B @овиЈ अक्सर पूछे जाने वाले प्रश्न कहते हैं कि वास्तविक कोड-गोल्फ सवालों के लिए सबसे छोटा समाधान जीतता है। यह प्रश्न स्पष्ट रूप से एक कोड-गोल्फ प्रश्न नहीं है।
कोजिरो सेप

11

18, न्यूलाइन सहित

#define float int

मुझे यकीन नहीं है कि यह काम करता है ... उर को एक फ्लोट के रूप में घोषित किया और 0.5 के साथ इसकी शुरुआत की
बोगडान अलेक्जेंड्रू

5
जो शून्य हो जाएगा।
डेडएमजी सेप

आप सही कह रहे हैं, मजेदार बात यह है कि मैंने कभी भी दशमलव मान के साथ इंट की शुरुआत नहीं की है, मुझे लगता है कि यह संकलक त्रुटि होगी, लेकिन यह केवल एक चेतावनी जारी करता है
बोगदान अलेक्जेंड्रू

2
@BogdanAlexandru C ++ मानक पर एक गैंडर लेते हैं, यह विशेष रूप से यहाँ खेलने पर निहित रूपांतरण का विवरण देता है।
पुराना

2
ध्यान दें कि हालांकि सभी संकलक इसे अनुमति देते हैं, मानक कीवर्ड को फिर से परिभाषित करने (और floatएक कीवर्ड) को प्रतिबंधित करता है।
अवकर


9
#include <iostream>
main() 
{
   const int a=1;
   const int b=2;
   const float c=0.5;
#define a 0;1
   std::cout << a/b-a*c;
}

14 वर्ण।


7
#include <iostream>
main() 
{
   const int a=1;
   const int b=2;
   const float c=0.5;
   return puts("0");
   std::cout << a/b-a*c;
}

17 वर्ण।


1
सबसे अच्छा समाधान अभी तक, क्योंकि यह सी ++ से संबंधित किसी भी चीज के चेहरे पर उड़ता है।
फेबस्प्रो

3
`पुट` को इस दायरे में घोषित नहीं किया गया
शियोना

@ सियोना आप किस कंपाइलर का उपयोग कर रहे हैं?
अशर्र

@ अर्श gcc (g ++) 4.5.4
shiona

1
मत सोचो, यह कोड 0. लौटाता है। लेकिन आप विस्मयादिबोधक चिह्न के माध्यम से स्थान बदल सकते हैं। वैसे भी, मुझे यकीन नहीं है कि जब रिटर्न शून्य होता है।
क्वर्टी

7
#include <iostream>
main()
{
   const int a=1;
   const int b=2;
   const float c=0.5;
std::cout<<0;//\
   std::cout << a/b-a*c;
}

यह 17 अक्षर है इसलिए यह सिर्फ फिट बैठता है।


7

मैं सी ++ नहीं जानता, हालांकि, इस सवाल पर आधारित है कि क्या आप केवल आउटपुट 0 के लिए एक लाइन इनपुट नहीं कर सकते हैं? प्रश्न निर्दिष्ट करता है कि आउटपुट 0 होना चाहिए, यह निर्दिष्ट नहीं करता है कि आपको आउटपुट को 0 में बदलना होगा।

std::cout << 0

(मेरे पास C ++ पर 0 सुराग है, शायद कोई व्यक्ति इस अवधारणा का उपयोग कर सकता है)


ओह ठीक है, आउटपुट सिर्फ 0 होना चाहिए, मुझे लगा कि यह स्पष्ट है, अन्यथा कोई पहेली नहीं होगी, क्या यह होगा?
बोगडान एलेक्जेंड्रू

7
@BogdanAlexandru आप पाएंगे कि एक खराब लिखित प्रश्न का शोषण करना इन पहेलियों को हल करने की एक सामान्य तकनीक है। यदि आप उपयोगकर्ताओं को इन शॉर्टकट्स को लेने से रोकना चाहते हैं, तो अपने स्वयं के प्रश्न का विश्लेषण करके कुछ अतिरिक्त मिनट बिताएं और किसी भी संभावित अस्पष्टता को दूर करने का प्रयास करें।
ardnew

3

12 चार्ट, भीड़ के समाधान के समान

#include <iostream>
int main() 
{
   const int a=1;
   const int b=2;
   const float c=0.5;
#define a b
   std::cout << a/b-a*c;
}

अन्य संयोजन भी काम करते हैं, जैसे #define a cया#define c 0


2

मुझे पता है कि यह , लेकिन मुझे लगता है कि आज वह टोपी पहने हुए है!

#include <iostream>
int main() 
{
   const int a=1;
   const int b=2;
   const float c=0.5;

--ए;

   std::cout << a/b-a*c;
}

न्यूलाइन सहित पांच चार्ट;


2
यह संकलन नहीं है, क्योंकि aहै const
17

उफ़, मुझे इसे एक संकलक को देना चाहिए था! :-(
टोबी स्पाइट



-1
#include <iostream>
int main() 
{
int a;if(a)
   const int a=1;
   const int b=2;
   const float c=0.5;
   std::cout << a/b-a*c;
}

इन 11 वर्णों के बारे में कैसे ...


1
यहाँ समस्या यह है कि int aपहले ifइसे इनिशियलाइज़ नहीं किया जा रहा था, इसलिए aइसका कोई भी मूल्य हो सकता है।
फ्रेंजेंकोई

1
यह अपरिभाषित है, आप के लिए एक असंवैधानिक मूल्य का उपयोग कर रहे हैं a
कोनराड रुडोल्फ

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.