m3ph1st0s এর প্রোগ্রামিং ধাঁধা 1 (সি ++) [বন্ধ]


26

এটি আপনার জন্য সি ++ ধাঁধা সিরিজের প্রথম। আশা করি আপনি উপভোগ করবেন।

সুতরাং, ধাঁধা নম্বর 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 হয়। নতুন লাইনে মোট 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 টি অক্ষর সহ একটি নতুন লাইন wasোকানো হয়েছিল তাই এটি ঠিক আছে। তবে এটি সমস্যার সমাধান করে না।

এটি যদি আপনার পক্ষে খুব সহজ হয় তবে চিন্তা করবেন না, আরও আসছেন !!


2
আমি খুব খুশি যে কেউ মাঝে মাঝে একটি সি ++ প্রশ্ন পোস্ট করে! আমার অর্থ, সমস্ত ধাঁধা যেখানে একটি সি ++ সমাধান 20 বা 30 লাইন হবে, তারপরে জে বা কে বা গল্ফস্ক্রিপ্টে সমাধান পোস্ট করা লোকেরা কিছুক্ষণ পরে হতাশায় পরিণত হয়।
মিস্টার লিস্টার

3
ফলাফলটি কী বৈধ, সু-সংজ্ঞায়িত সি ++ হতে হবে বা এটি ইউবি ব্যবহার করতে পারে? (তবে মিঃ লিস্টার উল্লেখ করেছেন যে, মূল কোডটিও সি ++ বৈধ নয়))
কনরাড রুডল্ফ

4
এটি বৈধ নয়। প্রধান আবশ্যক আগমন int- এ (পড়া C ++ মান)
BЈовић

2
আমরা এখানে পয়েন্ট মিস করছি। আপনি যদি কিছু মনে করেন তবে আমি কোন কিছু দিই না
বোগদান আলেকজান্দ্রু

11
@ বোগদান: দফুক? একটির জন্য, ডিভিসি ++ এত স্পষ্টতই প্রাচীন, এর আউটপুটটি অপ্রাসঙ্গিক। এবং দ্বিতীয়ত, কোনও ওএসকে টার্গেট করে যে কোনও সময় প্রদত্ত কনফিগারেশনে প্রদত্ত সংকলক তা গ্রহণযোগ্য সি ++ করে না।
ডেড এমএমজি

উত্তর:


14
#define int float

পাশাপাশি কাজ করা উচিত এবং একই দৈর্ঘ্য।


আমি প্রথম যখন এই ধারণাটি নিয়ে এসেছিলাম তখন আমার মনে এই ছিল
বোগদান আলেকজান্দ্রু

5
#define int floatপ্রকৃতপক্ষে অপরিবর্তিত আচরণ। আপনাকে কীওয়ার্ডগুলিকে নতুন অর্থ দেওয়ার অনুমতি নেই।
ফ্রেডওভারফ্লো

ফ্রেড, আপনি কি আপনার উত্স উদ্ধৃত করতে পারেন? জিসিসি সিপিপি ডক্স বলছে "আপনি যে কোনও বৈধ সনাক্তকারীকে ম্যাক্রো হিসাবে সংজ্ঞায়িত করতে পারেন, এমনকি এটি সি কীওয়ার্ড হলেও।"
ড্যান

@ ড্যান: সি ++ স্ট্যান্ডার্ড এটিকে নিষেধ করে।
ডেড এমএমজি

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 অক্ষর।

যাইহোক, মূল প্রোগ্রামটি এমএসভিসির অধীনে সংকলন করে না, যা অভিযোগ করে যে mainরিটার্নের ধরণ নেই।


2
int a = 0; //। এছাড়াও কৌতুক করবে
অনুলিপি

2
একেবারে। তবে এটি কি "সংক্ষিপ্ততম লাইনের জয়" ধরণের প্রতিযোগিতা?
মিস্টার লিস্টার

আমি ভেবেছিলাম, তবে তা নয়। উপায় দ্বারা দুর্দান্ত কৌশল
অনুলিপি করুন

2
হ্যাঁ, সংক্ষিপ্ততম সমাধানটি কোডগল্ফ এসই তে জিতল। দেখতে FAQ
BЈовић

2
@ বিএইচএইউএইএএইচএলএ বলেছেন যে সংক্ষিপ্ত সমাধানটি প্রকৃত কোড-গল্ফ প্রশ্নের জন্য জিতেছে। এই প্রশ্নটি স্পষ্টভাবে কোনও কোড-গল্ফ প্রশ্ন নয়।
কোজিরো

11

নিউলাইন সহ 18 টি

#define float int

আমি সত্যিই নিশ্চিত নই যে এটি কাজ করে ... আপনি সিটিকে একটি ফ্লোট হিসাবে ঘোষণা করে এবং 0.5 দিয়ে এটি আরম্ভ করছেন
বোগদান আলেকজান্দ্রু

5
যা শূন্যে কেটে যাবে।
ডেড এমএমজি

আপনি ঠিক বলেছেন, মজার বিষয় আমি কখনই দশমিক মান দিয়ে কোন প্রারম্ভিক সূচনা করতে পারিনি, আমি ভেবেছিলাম এটি সংকলক ত্রুটি হবে তবে এটি কেবল একটি সতর্কতা জারি করেছে
বোগদান আলেকজান্দ্রু

2
@ বোগদান আলেকজান্দ্রু সি ++ স্ট্যান্ডার্ডে বিভ্রান্ত হন, এটি এখানে বিশেষভাবে খেলার সময় অন্তর্নিহিত রূপান্তর সম্পর্কে বিশদ বর্ণনা করে।
oldrinb

2
মনে রাখবেন যে সমস্ত সংকলক এটির অনুমতি দিলেও মানকটি কীওয়ার্ডগুলি (এবং floatএকটি কীওয়ার্ড) পুনরায় সংজ্ঞায়িত করতে নিষেধ করে ।
অবাক



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
এখনও সেরা সমাধান, কারণ এটি সি ++ সম্পর্কিত কোনও কিছুর মুখে উড়ে যায়।
ফেবস্প্রো


@ শিওনা আপনি কি সংকলক ব্যবহার করছেন?
Ashrr

@ আশর জিসিসি (জি ++) 4.5.4
শিয়ানা

1
ভাববেন না, এই কোডটি ০. ফিরে আসে তবে আপনি বিস্মৃত চিহ্নের মাধ্যমে স্থানটি প্রতিস্থাপন করতে পারেন। যাইহোক, আমি নিশ্চিত না কখন শূন্য ফিরে আসে।
কিওয়ারটি

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

(আমার সি ++ তে 0 টি ক্লু রয়েছে, সম্ভবত কেউ এই ধারণাটি ব্যবহার করতে পারেন)


ওহ ভাল, আউটপুটটি কেবল 0 হওয়া উচিত, আমি ভেবেছিলাম এটি সুস্পষ্ট ছিল, অন্যথায় কোনও ধাঁধা থাকবে না, তাই না?
বোগদান আলেকজান্দ্রু

7
@ বোগদান অ্যালেক্সান্দ্রু আপনি দেখতে পাবেন যে এই ধাঁধাগুলি সমাধান করার জন্য একটি দুর্বল লিখিত প্রশ্নকে কাজে লাগানো একটি সাধারণ কৌশল। আপনি যদি ব্যবহারকারীদের এই শর্টকাটগুলি গ্রহণ করা থেকে বিরত রাখতে চান তবে নিজের প্রশ্ন বিশ্লেষণ করে কয়েক অতিরিক্ত সময় ব্যয় করুন এবং কোনও সম্ভাব্য অস্পষ্টতা দূর করার চেষ্টা করুন।
আর্দনিউ

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;

--a;

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

নিউলাইন সহ পাঁচটি অক্ষর;


2
এটি সংকলন করে না, কারণ aএটি const
সিএসকিউ

উফফ, আমার এটি একটি সংকলককে দেওয়া উচিত ছিল! :-(
টবি স্পিড

0

সি ++ যাই হোক না কেন ...

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

এর মাধ্যমে চালান:

sh mp.cpp

দুর্দান্ত চেষ্টা করে তবে প্রয়োজনীয়তা লঙ্ঘন করে: বৈধ সি ++।
কনরাড রুডল্ফ


-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;
}

এই ১১ টি চর সম্পর্কে কীভাবে ...


1
এখানে সমস্যা হল int aআগে ifসক্রিয়া করা হচ্ছে না, তাই aকোনো মান থাকতে পারে।
হিমশীতল

1
এটি পূর্বনির্ধারিত, আপনি এর জন্য একটি নির্বিঘ্নিত মানটি ব্যবহার করছেন a
কনরাড রুডল্ফ

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.