1-100の足し算を一番ひどいコードで書いた奴が優勝
1-100の足し算を一番ひどいコードで書いた奴が優勝
元スレ
1 :仕様書無しさん:2014/03/17(月) 01:57:59.72 .net
バッドノウハウ共有。
言語名は必須。
とりあえず何も考えずに。
C#
int sum = 0;
for(int i = 1; i <= 100; ++i)
{
sum += i;
}
156 :仕様書無しさん:2014/03/27(木) 18:56:28.21 .net
372 :仕様書無しさん:2015/01/31(土) 22:02:37.56 .net
引き算だけ使って1から100までの和を求めてみた。
#include <stdio.h>
#include <limits.h>
main() {
int sum = INT_MAX;
for (; ; sum–) {
int i, rest = sum;
for (i = 100; i >= 1; i–)
rest -= i;
if (rest == 0) {
printf(“%d¥n”, sum);
break;
}
}
}
古いマシンほど早く答えが出るのがひどい。
63 :仕様書無しさん:2014/03/20(木) 00:44:37.52 .net
可読性が下がるからバッドノウハウであるという点を除けば微妙に勉強になるスレだな
288 :仕様書無しさん:2014/04/19(土) 17:18:27.45 .net
>>286
%と/を使わない方法でやってみた
//C
#include <stdio.h>
int mod(int left,int right){
while( left >= right )
left -= right;
return left;
}
int main(void){
int i;
for( i = 1 ; i <= 100 ; i++ ){
if( mod(i,15) == 0 )
printf(“FizzBuzz¥n”);
else if( mod(i,3) == 0 )
printf(“Fizz¥n”);
else if( mod(i,5) == 0 )
printf(“Buzz¥n”);
else
printf(“%d¥n”,i);
}
return 0;
}
3 :仕様書無しさん:2014/03/17(月) 02:13:56.25 .net
3 :仕様書無しさん:2014/03/17(月) 02:13:56.25 .net
152 :仕様書無しさん:2014/03/27(木) 17:54:49.40 .net
Java
public class 一から百の足し算をする酷いクラス
{
static int 合計 = 0;
static int カウンター = 1;
public static void main(String… つかわない)
{
Arrays.stream(new Object[100]).forEach(o -> 合計 += カウンター++);
System.out.println(合計);
}
}
「ひどさ」にもいろいろな種類があると思う
167 :仕様書無しさん:2014/03/28(金) 01:18:45.58 .net
//これ実行してのを実行してくださいたぶん動くから
#include<iostream>
int i;void main()
{
for(i=0;i<=100;i=i+1)
switch(i)
{
case 0:printf(“#include<iostream>¥nvoid main(){printf(¥”%%d¥”,0″);break;
case 1:printf(“+%d”,1);break;
case 2:printf(“+%d”,2);break;
case 3:printf(“+%d”,3);break;
case 4:printf(“+%d”,4);break;
case 5:printf(“+%d”,5);break;
case 6:printf(“+%d”,6);break;
case 7:printf(“+%d”,7);break;
case 8:printf(“+%d”,8);break;
(中略)
case 93:printf(“+%d”,93);break;
case 94:printf(“+%d”,94);break;
case 95:printf(“+%d”,95);break;
case 96:printf(“+%d”,96);break;
case 97:printf(“+%d”,97);break;
case 98:printf(“+%d”,98);break;
case 99:printf(“+%d”,99);break;
case 100:printf(“+%d”,100);break;
}
printf(“);}”
); }
235 :仕様書無しさん:2014/04/08(火) 07:49:17.75 .net
109 :仕様書無しさん:2014/03/22(土) 21:49:22.08 .net
15 :仕様書無しさん:2014/03/17(月) 11:58:00.38 .net
384 :仕様書無しさん:2015/08/07(金) 16:43:46.66 .net
34 :仕様書無しさん:2014/03/18(火) 20:35:02.71 .net
C++
#include <iostream>
int main()
{
int a=0,b=0,c;
for(int i=1; i<=100; ++i){
b=a&i; a^=i;
while(b){ b<<=1; c=a; a^=b; b&=c; }
}
std::cout << “a=” << a << std::endl;
return 0;
}
216 :仕様書無しさん:2014/04/01(火) 01:35:34.98 .net
366 :仕様書無しさん:2014/07/02(水) 18:43:55.10 .net
47 :仕様書無しさん:2014/03/19(水) 01:02:57.89 .net
linuxのshell script(bash)で、、
i=0
sum=0
while [ $i -lt 100 ]
do
i=`expr $i + 1`
sum=`expr $sum + $i`
done
echo $sum
159 :149:2014/03/27(木) 19:26:58.70 .net
そういや電卓が入ってないPC想定してなかったわw
本当の意味で酷いな・・・
315 :仕様書無しさん:2014/04/28(月) 09:14:55.68 .net
人に言われて動いていると自分が自分でなくなるというわけか。
考えさせられるなw
177 :仕様書無しさん:2014/03/28(金) 21:10:31.51 .net
C
int sum = 0;
int i;
for(i = 1 ; i<=100 ; i++){
sum += i;
}
8bitコンパイラを想定してないからひどいコードだよね?
41 :仕様書無しさん:2014/03/18(火) 22:29:23.03 .net
駄スレかと思って開いたらすごくおもしろいスレだな
毎週違う問題のこんなコードを見てみたい
誰かWikiつくったりしてやらないかな…
310 :仕様書無しさん:2014/04/26(土) 22:42:17.84 .net
368 :仕様書無しさん:2014/07/03(木) 00:14:25.89 .net
164 :仕様書無しさん:2014/03/28(金) 00:28:18.40 .net
229 :仕様書無しさん:2014/04/06(日) 17:29:24.78 .net
81 :仕様書無しさん:2014/03/21(金) 11:34:02.79 .net
# perl (らしいこと何もしてないけど)
$sum=0;
for ($i=1; $i<=100; ++$i) {
for ($c=0; $c<$i; ++$c) {
++$sum;
}
}
print “$sum”;
367 :仕様書無しさん:2014/07/02(水) 21:50:46.42 .net
1-100の足し算
引き算なのに足し算
眠れなくなる
414 :仕様書無しさん:2016/11/10(木) 21:35:48.58 .net
VBScript
1〜100の和を 1000^101 / 999^2 の商を利用して計算。
投稿規制に引っかかったので等号は全角にしてます。
n = 100
nn = n * 10
a = nn ^ 2
b = (nn – 1) ^ 2
q = Int(a / b)
s = CStr(q)
For i = 2 To n
a = (a – b * q) * nn
q = Int(a / b)
s = s & “,” & Right(“00” & CStr(q), 3)
Next
WScript.Echo “sum(1…” & CStr(n) & “) = ” & Eval(Replace(s, “,”, “+”))
202 :仕様書無しさん:2014/03/30(日) 05:21:52.92 .net
281 :仕様書無しさん:2014/04/18(金) 00:55:30.51 .net
お題 >>261 サイコロ
Ruby
def dice
(Time.now.to_i%6).to_i
end
149 :仕様書無しさん:2014/03/27(木) 11:53:50.14 .net
最も酷いのは電卓を呼び出してキーイベントで電卓叩くプログラムじゃないかな
132 :仕様書無しさん:2014/03/24(月) 18:57:16.28 .net
俺基準ひどいコード
・長い
・周りくどい
・読みにくい
・スパゲッティ
・明らかなタイポ
・裏で深刻なエラー
・ルール理解してない
・画像で描かれている
・コンパイラが存在しない
91 :仕様書無しさん:2014/03/21(金) 23:27:57.85 .net
int i;
i = 1;
i = i + 1; i = i + 2; i = i + 3; i = i + 4; i = i + 5;
i = i + 6; i = i + 7; i = i + 8; i = i + 9; i = i + 10;
i = i + 11; i = i + 12; i = i + 13; i = i + 14; i = i + 15;
i = i + 16; i = i + 17; i = i + 18; i = i + 19; i = i + 20;
i = i + 21; i = i + 22; i = i + 23; i = i + 24; i = i + 25;
i = i + 26; i = i + 27; i = i + 28; i = i + 29; i = i + 30;
i = i + 31; i = i + 32; i = i + 33; i = i + 34; i = i + 35;
i = i + 36; i = i + 37; i = i + 38; i = i + 39; i = i + 40;
i = i + 41; i = i + 42; i = i + 43; i = i + 44; i = i + 45;
i = i + 46; i = i + 47; i = i + 48; i = i + 49; i = i + 50;
i = i + 51; i = i + 52; i = i + 53; i = i + 54; i = i + 55;
i = i + 56; i = i + 57; i = i + 58; i = i + 59; i = i + 60;
i = i + 61; i = i + 62; i = i + 63; i = i + 64; i = i + 65;
i = i + 66; i = i + 67; i = i + 68; i = i + 69; i = i + 70;
i = i + 71; i = i + 72; i = i + 73; i = i + 74; i = i + 75;
i = i + 76; i = i + 77; i = i + 78; i = i + 79; i = i + 80;
i = i + 81; i = i + 82; i = i + 83; i = i + 84; i = i + 85;
i = i + 86; i = i + 87; i = i + 88; i = i + 89; i = i + 90;
i = i + 91; i = i + 92; i = i + 93; i = i + 94; i = i + 95;
i = i + 96; i = i + 97; i = i + 98; i = i + 99; i = i + 100;
150 :仕様書無しさん:2014/03/27(木) 12:20:42.10 .net
304 :仕様書無しさん:2014/04/25(金) 23:13:43.31 .net
116 :仕様書無しさん:2014/03/23(日) 14:22:17.65 .net
いい言語だ
data Nat = Zero | Succ Nat deriving Show
add Zero x = x
add (Succ x) y = Succ $ add x y
mul Zero _ = Zero
mul (Succ x) y = add y $ mul x y
iota Zero = []
iota x@(Succ x’) = x : iota x’
one = Succ Zero
two = add one one
ten = mul two $ add two $ add two one
hund = mul ten ten
main = print $ foldl add Zero $ iota hund
308 :仕様書無しさん:2014/04/26(土) 12:04:41.01 .net
142 :141:2014/03/25(火) 00:51:39.60 .net
「捨てられない」なんて思っているのは俺ではない。いい忘れた
75 :仕様書無しさん:2014/03/21(金) 06:48:16.61 .net
else if (i == 50) a+= 51;else if (i == 51) a+= 52;else if (i == 52) a+= 53;else if (i ==53) a+= 54;
else if (i == 54) a+= 55;else if (i == 55) a+= 56;else if (i == 56) a+= 57;else if (i == 57) a+= 58;
else if (i == 58) a+= 59;else if (i == 59) a+= 60;else if (i == 60) a+= 61;else if (i == 61) a+= 62;
else if (i == 62) a+= 63;else if (i == 63) a+= 64;else if (i == 64) a+= 65;else if (i == 65) a+= 66;
else if (i == 66) a+= 67;else if (i == 67) a+= 68;else if (i == 68) a+= 69;else if (i == 69) a+= 70;
else if (i == 70) a+= 71;else if (i == 71) a+= 72;else if (i == 72) a+= 73;else if (i == 73) a+= 74;
else if (i == 74) a+= 75;else if (i == 75) a+= 76;else if (i == 76) a+= 77;else if (i ==77) a+= 78;
else if (i == 78) a+= 79;else if (i == 79) a+= 80;else if (i == 80) a+= 81;else if (i == 81) a+= 82;
else if (i == 82) a+= 83;else if (i == 83) a+= 84;else if (i == 84) a+= 85;else if (i == 85) a+= 86;
else if (i == 86) a+= 87;else if (i == 87) a+= 88;else if (i == 88) a+= 89;else if (i == 89) a+= 90;
else if (i == 90) a+= 91;else if (i == 91) a+= 92;else if (i == 92) a+= 93;else if (i == 93) a+= 94;
else if (i == 94) a+= 95;else if (i == 95) a+= 96;else if (i == 96) a+= 97;else if (i == 97) a+= 98;
else if (i == 98) a+= 99;else if (i == 99) a+= 100;
}
155 :仕様書無しさん:2014/03/27(木) 18:53:38.37 .net
>>154
おお、動いた。計算中 フォーカスを電卓以外に移すと(w
コンパイルこんな感じ → cl ファイル名.cpp user32.lib shell32.lib
111 :仕様書無しさん:2014/03/22(土) 23:27:23.84 .net
>>106
>>95のリンク先にBlocklyから変換されたPythonとDartとJavaScriptのコードがある
Blocklyすげぇ
65 :仕様書無しさん:2014/03/20(木) 01:16:23.03 .net
ruby
def sum(start, end)
raise ‘バリデーションエラー’ unless start == 1 and end == 100
5050
end
285 :仕様書無しさん:2014/04/19(土) 13:52:00.70 .net
そこら辺の領域をゴミごと拾って初期化せず使うからランダム(に見える)
忠実なコンパイラは通すが頭がいいコンパイラは初期化してないって怒る
355 :仕様書無しさん:2014/06/23(月) 05:06:31.69 .net
#include <stdio.h> /*おまじない*/
main() /*メイン関数*/
{ /*波カッコ*/
int goukei=0; /*合計に0を代入*/
int kazu=1; /*数に1を代入*/
for(kazu=1;kazu<101;kazu++) /*繰り返す*/
{ /*波カッコ*/
goukei+=kazu; /*合計に数を足す*/
} /*波カッコ*/
printf(“kekkaha%ddesu”,goukei); /*プリントf関数を使う*/
} /*波カッコ*/
412 :仕様書無しさん:2016/11/06(日) 19:24:20.00 .net
305 :仕様書無しさん:2014/04/26(土) 00:08:09.33 .net
181 :仕様書無しさん:2014/03/29(土) 01:42:29.02 .net
俺はコードを100本持っているが
お前らには貸さん
1から100まで貸さんコード
157 :仕様書無しさん:2014/03/27(木) 19:00:03.43 .net
Java
import static java.lang.System.*;import static java.util.Arrays.*;
class I{public static void main(String… i){out.println(new I(){int i;int j;{stream(new I[100]).forEach(l->i+=++j);}}.i);}}
読み辛いだけでも十分ひどいコード
コードの中身は大体>>152と同じ。マルチバイト名やめて匿名クラスを追加してLIJ多用
————–
JavaScript
javascript:(function(){var a=”1″;for(i=2;i<101;i++)a+=”%252B”+i;location.href=”https://www.google.com/search?q=”+a})()
>>144の派生。発想は>>149
Chromeだと、ブラウザに貼り付けた時に消される”javascript:”を頭につけてあげれば実行できる
他のブラウザは知らんです
2 :仕様書無しさん:2014/03/17(月) 02:03:42.52 .net
C#
int sum = 1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20+
21+22+23+24+25+26+27+28+29+30+31+32+33+34+35+36+37+38+39+40+
41+42+43+44+45+46+47+48+49+50+51+52+53+54+55+56+57+58+59+60+
61+62+63+64+65+66+67+68+69+70+71+72+73+74+75+76+77+78+79+80+
81+82+83+84+85+86+87+88+89+90+91+92+93+94+95+96+97+98+99+100;
330 :仕様書無しさん:2014/06/04(水) 15:41:40.62 .net
Javaで
public class GaussSum {
public static void main(String[] args) {
// ワイならこう考えるやで
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum += 101;
}
System.out.println(sum);
}
}
72 :仕様書無しさん:2014/03/21(金) 03:49:39.94 .net
(* Standard ML *)
local val t = ref 0 in val sum1_100 = (hd o rev o List.tabulate) (101, fn i =>
(t := !t + i; !t)) end ;
(* assertion *)
val true = sum1_100 = foldl (op +) 0 (List.tabulate(101, fn i => i));
レスを投稿する(名前省略可)