C, C ++, BF, BASH และ Ruby; 280 ตัวอักษร
คะแนนประมาณ 0.040
#include "stdio.h"
#define s "C"
#ifdef __cplusplus
#define s "C++"
#endif
#ifndef s
#"+++++++++[>++++++++++>+++++++++<<-]>>-.<++++.>-.++++++++.<----.>---.<+++++++.>---.++++++++.<<++++++++++.[-]"
if [ 1 == 2 ];then
puts "Ruby"
exit
fi
echo "BASH"
exit
end
#endif
main(){puts(s);}
โปรดทราบว่าฉันใช้ระบบ Linux
รหัสที่เรียกใช้หรือรวบรวมกับคำสั่งดังต่อไปนี้ (ชื่อไฟล์เป็นtest.c
)
C:
gcc test.c
เมื่อรันด้วย./a.out
เอาต์พุตจะเป็นC
C ++:
c++ test.c
เมื่อรันด้วย./a.out
เอาต์พุตจะเป็นC++
ทุบตี:
./test.c
ขาออก: BASH
ทับทิม:
ruby test.c
ขาออก: Ruby
BrainF ***:
ตรวจสอบโดยใช้สิ่งต่อไปนี้:
ขาออก: brainfuck
โปรดทราบว่าหากใช้ดีบักเกอร์ JS ต้องลบเครื่องหมายลบสองรายการแรก "C++"
พวกเขาถูกรวมเพื่อชดเชยสัญญาณบวกในสตริงตัวอักษร นี่เป็นโครงการที่สนุกมากฉันกำลังเพิ่มภาษามากขึ้น
เพื่อเพิ่มความชัดเจนยิ่งขึ้นต่อไปนี้คือรายละเอียดของผู้แปล / ผู้แปลของฉัน:
หมายเหตุด้านข้าง
การใช้กลอุบายของ @ baby-rabbit ฉันสามารถขยายรหัสของฉันเพื่อให้สามารถเรียกใช้งานได้ใน 7 ภาษา (เพิ่ม Object-C และ object-c ++ นี่ไม่ใช่วิธีการแก้ปัญหาของฉันตั้งแต่ฉันคัดลอกบางส่วน แต่ฉันคิดว่าฉันจะแสดงมันออกมา
อัพเดท 9.12
เพิ่ม SmallTalk รันด้วย gnu-smalltalk!
SmallTalk, C, C ++, Objective-C, Objective-C ++, BASH, BF, Ruby; 384 ตัวอักษร (คะแนน: 0.059)
#if (a)
##(true) ifTrue: ['SmallTalk' printNl]
##(ObjectMemory quit)
#"+++++++++++[>++++++++++>+++++++++<<-]>>-.<++++.>-.++++++++.<----.>---.<+++++++.>---.++++++++.<<++++++++++.[-]"
if [ 1 == 2 ];then
puts 'Ruby'
exit
fi
echo 'BASH'
exit
end
=begin
#endif
#include "stdio.h"
main(){puts(
#ifdef __OBJC__
"Objective-"
#endif
"C"
#ifdef __cplusplus
"++"
#endif
);}
#ifdef b
=end
#endif
ในรหัสข้างต้นคุณจะต้องเปลี่ยนชื่อไฟล์เพื่อสร้างชื่อของ Spam สำหรับวัตถุประสงค์ -c, obj-c ++, c และ c ++
print()
สำหรับ Perl, Python, PHP, การประมวลผลและ R ถือว่าไม่สำคัญหรือเป็นที่ยอมรับหรือไม่