1-100の足し算を一番ひどいコードで書いた奴が優勝

0001仕様書無しさん2014/03/17(月) 01:57:59.72
バッドノウハウ共有。
言語名は必須。
とりあえず何も考えずに。

C#
int sum = 0;
for(int i = 1; i <= 100; ++i)
{
  sum += i;
}

0002仕様書無しさん2014/03/17(月) 02:03:42.52
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;

0003仕様書無しさん2014/03/17(月) 02:13:56.25
>>2を超えるコードが見たい

0004仕様書無しさん2014/03/17(月) 02:35:33.98
C#
int sum = 0;
for(int i = 1 ; i <= 100 ; i++ )
{
for(int j = 0 ; j < i ; j++ )
{
sum++;
}
}

0005仕様書無しさん2014/03/17(月) 02:54:21.25
using System;
using System.IO;

class Program
{
static void Main()
{
var sw = new StreamWriter("a.html");
sw.Write("<html><head><script>var sum=0;for(var i=0;i<=100;i++)for(var j=0;j<i;j++)sum++;alert(sum.toString());</script></head><body></body></html>");
sw.Close();
System.Diagnostics.Process.Start("a.html");
}
}
//>>4はスマートすぎた。ごめん。

0006仕様書無しさん2014/03/17(月) 06:01:05.58
/* C */
#define ___ /*empty*/

/*なんてったって再帰*/
#include <stdio.h>
#include <assert.h>

int sumFromTo(int from, int to) {
___ assert(from <= to);
___ if (from == to) {
___ ___ return from;
___ }
___ return from + sumFromTo(from+1, to);
}

int main(int argc, char* argv[]) {
___ printf("sum[1,100]=%d\n", sumFromTo(1, 100));
}

0007仕様書無しさん2014/03/17(月) 06:52:50.89
const int begin = time(0);
for ( int i = 1; i <= 100; ++i ) sleep(i);
return time(0) - begin;

0008仕様書無しさん2014/03/17(月) 06:55:52.16
std::string sum = "";
for(int i=1; i <= 100; ++i) {
std::string n = "";
for(int j=1; j <= i; ++j) {
n += ".";
}
sum += n;
}
return sum.length();

0009仕様書無しさん2014/03/17(月) 07:01:59.07
const int x = 100;
int count = 0;
int sum = 0;
uint8_t flags[(x+7)/8];
memset(flags,0,sizeof(flags));
while( count >= 100 ) {
const int n = rand() * 100 / (RAND_MAX+1);
if ( flags[n/8] & (1 << (n%8)) )
continue;
flags[n/8] |= 1 << (n%8);
sum += n;
++ count;
}
return sum;

0010仕様書無しさん2014/03/17(月) 07:07:13.07
Cで普通に
int main()
{
  int kotae = 0;
  int tasukazu = 1;
 kurikaesi:
  kotae = kotae + tasukazu;
  tasukazu = tasukazu + 1;
  if (tasukazu <= 100) goto kurikaesi;
  printf("%d\n", kotae);
  exit(0);
}

0011仕様書無しさん2014/03/17(月) 07:22:58.65
#include <stdio.h>

int main(void){
int from = 1,to = 100;
printf("%d", to * ( from + to ) / 2 );
return 0;
}

0012仕様書無しさん2014/03/17(月) 07:24:49.31
既出かもしれんが

include <stdio.h>

int func(int n){
return n==1 ? 1 : n + func(n-1);
}

int main(void){
printf("%d",func(100));
return 0;
}

0013仕様書無しさん2014/03/17(月) 11:55:25.72
Pharo(Smalltalk)

Compiler evaluate:
(((1 to: 100) asArray printString copyReplaceAll: '#' with: '') copyReplaceAll: ' ' with: ' + ')

一時変数を使わなかった自分を褒めてあげたい

0014仕様書無しさん2014/03/17(月) 11:57:50.15
マ板で一番恐ろしいスレが誕生したのでは?

0015仕様書無しさん2014/03/17(月) 11:58:00.38
int s=5050; //電卓で計算済み

0016仕様書無しさん2014/03/17(月) 11:58:07.15
定義ファイル内で
#define MIN 1
#define MAX 100

本体プログラム
int sum = 0;
for(int i = MIN; i <= MAX ; ++i)
{
  sum += i;
}

100ではわかりにくいがMAXがintで計算可能な限界辺りの数で
MAXは将来大きくされる可能性があるなら
将来原因不明のバグを発生させる最良の方法

0017仕様書無しさん2014/03/17(月) 12:04:29.15
>>6のコードがなんとなく好き

0018仕様書無しさん2014/03/17(月) 16:29:05.81
//C
int sub(const char* _a, size_t as, const char *_b, size_t bs, char*result, size_t rs){
char *a, *b, *c, *tmp;
short i, x, y, z, bup=0;
a = (char*)malloc(as);b = (char*)malloc(bs);c = (char*)malloc(rs);
strcpy(a, _a);strrev(a);
strcpy(b, _b);strrev(b);
for(i=0;i<(short)strlen(a)|| i<(short)strlen(b);i++){
if(i<strlen(a))x=a[i]-'0';
else x=0;
if(i<strlen(b))y=b[i]-'0';
else y=0;
z=x-y-bup;bup=0;if(z<0){z+=10;bup++;}result[i]=z+'0';
}
if(bup!=0)reslt[i++]=bup+'0';
result[i]='0';strrev(result);
tmp=strchr(result, '0');
if(tmp!=NULL && result[0]=='0'){
strcpy(c, tmp+1);
strcpy(result, c);
}
free(a);free(b);free(c);
return 0;
}
main(){
char a[512]="100", b[512]="1", c[512];
sub(a, sizeof a, b, sizeof b, c, sizeof c); //100-1
}
スレタイガン無視ですまん
手元のソースがこれしかなかった
すまほで書き写してる都合間違い多いけど簡便

0019仕様書無しさん2014/03/17(月) 21:43:06.92
C

#include <math.h>

int n = 0;
for( int i = 1; i < 100; i=i+1 ) {
n = n * i;
}
printf( "%d\n", log( n )); // なぜか答えが合わない

0020仕様書無しさん2014/03/17(月) 21:46:22.47
#include <stdio.h>
void main(){

}

0021仕様書無しさん2014/03/17(月) 21:50:16.55
ミスったC++

int result;
std::cout << "答えを入力して下さい:";
std::cin >> result;
std::cout << std::endl << "答えは" << result << "です" << std::endl;

0022仕様書無しさん2014/03/17(月) 22:45:11.27
def SumFromTo(from,to):
return 5050

0023仕様書無しさん2014/03/17(月) 22:51:58.50
プロならテストケースも書くだろ

assertEquals(5050, 5050);

0024仕様書無しさん2014/03/17(月) 23:31:24.03
>>19
突っ込みどころの多さなら優勝だな
log( 100! )を計算しようとしているのは伝わる
log( 100! ) = log(1)+log(2)+...+log(100)となんかそれっぽいが違うのは明白
一応log( 100! )は計算したところ360前後の数字になるし
100!はint型じゃオーバーフローするし
つーかソースコードだと99!になってるし
そのまえにint n = 0;ってどうよ...

0025仕様書無しさん2014/03/17(月) 23:38:19.66
class num:
def __init__(self):
self.value = None
class one(num):
def __init__(self):
self.value = 1
class two(num):
def __init__(self):
self.value = 2
#----(以下略)----
class onehundred(num):
def __init__(self):
self.value = 100

def main():
lst = []
lst.append(one())
lst.append(two())
#----(以下略)----
lst.append(onehundred())
sum = 0
for i in lst:
sum += i.value
print(5050)

if(__name__ == '__main__'):
#main()
print(5050)

0026仕様書無しさん2014/03/18(火) 00:27:57.60
>>23
テスト駆動開発だ!

0027仕様書無しさん2014/03/18(火) 00:31:41.42
>>25のコードがよく見ると最後にprintでマジックナンバー出力してて吹く

0028仕様書無しさん2014/03/18(火) 00:35:24.19
VBで作ってみたよ。

Sub main()
a = InputBox("1から100まで足した答えを入力してください")
MsgBox a
End Sub

0029仕様書無しさん2014/03/18(火) 15:54:42.70
数学の公式を使う

int sum = (1+100)*(100/2);

0030仕様書無しさん2014/03/18(火) 16:41:03.35
機械語ではよ

0031仕様書無しさん2014/03/18(火) 17:56:12.69
++++[>+++++++++++++<-]>+.<
>-----.<
>+++++.<
>-----.<

0032仕様書無しさん2014/03/18(火) 19:15:39.92
#include <stdio.h>
#include <stdlib.h>

#define TRIAL 20000000UL
int main(){
unsigned long n = 0;
for( unsigned long i = 0; i < TRIAL; ++i ){
int x = rand()%100;
int y = rand()%100;
if( y <= x ) n++;
}
printf( "%u\n", (unsigned int)((double)n*10000/TRIAL)); // 確率的にこれくらい
};

0033仕様書無しさん2014/03/18(火) 19:32:11.52
もういっちょ。C++で。

#include <cstdio>
template<int N> struct foo {
enum{ result = N + foo<N-1>::result };
};
template<> struct foo<1>{
enum{ result = 1 };
};
int main(){
std::printf( "%d\n", foo<100>::result ); // コンパイラさん、がんばれ。
}

0034仕様書無しさん2014/03/18(火) 20:35:02.71
C++

#include <iostream>

int main()
{
int a=0,b=0,c;
for(int i=1; i<=100; ++i){
b=a&amp;i; a^=i;
while(b){ b<<=1; c=a; a^=b; b&amp;=c; }
}
std::cout << "a=" << a << std::endl;
return 0;
}

0035342014/03/18(火) 20:36:14.51
&がエスケープされて&amp;になっとる・・・

0036仕様書無しさん2014/03/18(火) 21:15:57.07
1引く100の足し算???

0037仕様書無しさん2014/03/18(火) 21:32:24.98
int i;
int sum;
for(sum=1;int i = 1 ; i <= 100 ; i++ )
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;
{

0038仕様書無しさん2014/03/18(火) 21:46:04.56
>>36
マなら>>1のコードを見て語れ

0039仕様書無しさん2014/03/18(火) 21:48:55.87
>>32
なんか正しくなりそうwww

0040仕様書無しさん2014/03/18(火) 21:56:57.87
ribyistなら最低さがわかる

sum=0
count=1
while count<=100 {
 sum += count
 coumt += 1
}

0041仕様書無しさん2014/03/18(火) 22:29:23.03
駄スレかと思って開いたらすごくおもしろいスレだな
毎週違う問題のこんなコードを見てみたい
誰かWikiつくったりしてやらないかな…

0042仕様書無しさん2014/03/18(火) 22:31:26.37
>>39
100回実行してみた
37回5050が出力されたが
63回違う答えが出た
でも一番離れている数字も5047
結構正確

0043仕様書無しさん2014/03/18(火) 23:15:10.64
>>33
メタ関数ていうんだっけ。俺にはわからん

0044仕様書無しさん2014/03/18(火) 23:25:38.49
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
int add(const char* _a, size_t as, const char* _b, size_t bs, char* result){
char *a, *b;short i, x, y, z, bup=0;
a = (char*)malloc(as); // 文字列を計算用ワークエリアにコピー
if(a == NULL)return -1;
b = (char*)malloc(bs);
if(b == NULL){free(a);return -2;}
strcpy(a, _a);strrev(a); strcpy(b, _b);strrev(b);
for(i=0;i<(signed short)strlen(a)||i<(signed short)strlen(b);i++){
if(i<(signed short)strlen(a))x=a[i]-'0'; else x=0;
if(i<(signed short)strlen(b))y=b[i]-'0'; else y=0;
z = x+y+bup;bup = 0;
if(z >= 10){ bup = z / 10;z = z % 10; }
result[i]=z+'0';
}
if(bup!=0)result[i++]=bup+'0';result[i]='\0';strrev(result);
free(a);free(b);return 0; // ワークエリア解放
}
int main(){
char ra[128], rb[128], rc[128];int i;

strcpy(ra, "0");
for(i=1; i<=100; i++){
sprintf(rb, "%d", i);
add(ra, sizeof(ra), rb, sizeof(rb), rc);strcpy(ra,rc);
}
printf("1-100までの足し算 = %s", ra);return 0;
}
正攻法。いろんな意味でアレ
規制の都合で改行控えめです

0045仕様書無しさん2014/03/18(火) 23:50:20.94
>>15が好きだわw

0046仕様書無しさん2014/03/19(水) 00:55:22.68
return 5050;

0047仕様書無しさん2014/03/19(水) 01:02:57.89
linuxのshell script(bash)で、、

i=0
sum=0
while [ $i -lt 100 ]
do
i=`expr $i + 1`
sum=`expr $sum + $i`
done
echo $sum

0048仕様書無しさん2014/03/19(水) 02:04:28.49
結構書き込んでるんだな

0049仕様書無しさん2014/03/19(水) 02:06:35.39
bashならもっとスマートに書こうぜ

for i in `seq 1 100`; do yes | head -n $i; done | wc -l

0050仕様書無しさん2014/03/19(水) 10:46:35.07
yesの出力を1〜100行切り取って行数数えるか、なるほど

0051仕様書無しさん2014/03/19(水) 12:42:22.14
黒魔術

0052仕様書無しさん2014/03/19(水) 12:44:43.59
>>44
おまえのような正攻法がいるか

0053仕様書無しさん2014/03/19(水) 13:55:17.90
;; emacs-lisp
(apply #'+
(let (s)
(dotimes (i 100 s) (setq s (cons (- 100 i) s)))))

0054仕様書無しさん2014/03/19(水) 16:48:57.46
i=rand(); //たまに当たる

00551/22014/03/19(水) 21:16:56.96
#include <stdio.h>
#define ONE 1
#define TWO 2
#define THREE 3
#define FOUR 4
#define FIVE 5
#define SIX 6
#define SEVEN 7
#define EIGHT 8
#define NINE 9
#define TEN 10
#define ELEVEN 11
#define TWELVE 12
#define THIRTEEN 13
#define FOURTEEN 14
#define FIFTEEN 15
#define SIXTEEN 16
#define SEVENTEEN 17
#define EIGHTEEN 18
#define NINETEEN 19
#define TWENTY 20 +
#define THIRTY 30 +
#define FORTY 40 +
#define FIFTY 50 +
#define SIXTY 60 +
#define SEVENTY 70 +
#define EIGHTY 80 +
#define NINETY 90 +
#define HUNDRED * 100

int main(){
printf( "%d\n",

00562/22014/03/19(水) 21:17:26.64
ONE + TWO + THREE + FOUR + FIVE + SIX + SEVEN + EIGHT + NINE + TEN
+ ELEVEN + TWELVE + THIRTEEN + FOURTEEN + FIFTEEN + SIXTEEN + SEVENTEEN
+ EIGHTEEN + NINETEEN
+ TWENTY + TWENTY ONE + TWENTY TWO + TWENTY THREE + TWENTY FOUR
+ TWENTY FIVE + TWENTY SIX + TWENTY SEVEN + TWENTY EIGHT + TWENTY NINE
+ THIRTY + THIRTY ONE + THIRTY TWO + THIRTY THREE + THIRTY FOUR
+ THIRTY FIVE + THIRTY SIX + THIRTY SEVEN + THIRTY EIGHT + THIRTY NINE
+ FORTY + FORTY ONE + FORTY TWO + FORTY THREE + FORTY FOUR
+ FORTY FIVE + FORTY SIX + FORTY SEVEN + FORTY EIGHT + FORTY NINE
+ FIFTY + FIFTY ONE + FIFTY TWO + FIFTY THREE + FIFTY FOUR
+ FIFTY FIVE + FIFTY SIX + FIFTY SEVEN + FIFTY EIGHT + FIFTY NINE
+ SIXTY + SIXTY ONE + SIXTY TWO + SIXTY THREE + SIXTY FOUR
+ SIXTY FIVE + SIXTY SIX + SIXTY SEVEN + SIXTY EIGHT + SIXTY NINE
+ SEVENTY + SEVENTY ONE + SEVENTY TWO + SEVENTY THREE + SEVENTY FOUR
+ SEVENTY FIVE + SEVENTY SIX + SEVENTY SEVEN + SEVENTY EIGHT + SEVENTY NINE
+ EIGHTY + EIGHTY ONE + EIGHTY TWO + EIGHTY THREE + EIGHTY FOUR
+ EIGHTY FIVE + EIGHTY SIX + EIGHTY SEVEN + EIGHTY EIGHT + EIGHTY NINE
+ NINETY + NINETY ONE + NINETY TWO + NINETY THREE + NINETY FOUR
+ NINETY FIVE + NINETY SIX + NINETY SEVEN + NINETY EIGHT + NINETY NINE
+ ONE HUNDRED );

0057仕様書無しさん2014/03/19(水) 21:21:25.96
+ TWENTY + TWENTY ONE
     ↑
コンパイル通らないと思われ。

0058仕様書無しさん2014/03/19(水) 21:24:25.51
>>57
チェック済よん。
展開すると
... + 20 + + 20 + 1 ...
になるんだけど、単項演算子++でなくて二項演算子+と単項演算子+に解釈されるんだな。
つまり
... + 20 + (+20) + 1 ...
ってわけだな。

0059仕様書無しさん2014/03/19(水) 21:31:26.08
どのコードも純粋にすごい

0060仕様書無しさん2014/03/20(木) 00:27:17.78
>>58
バッドノウハウ見に来たのにCのマクロテクニックを見れた

0061仕様書無しさん2014/03/20(木) 00:29:51.47
>>55-56
感動した

0062仕様書無しさん2014/03/20(木) 00:37:21.92
codepad使うのどうでしょう?
スマホからも動作して出力とか見れるので便利そうな
何よりきちんとインデントできます。

http://codepad.org/

0063仕様書無しさん2014/03/20(木) 00:44:37.52
可読性が下がるからバッドノウハウであるという点を除けば微妙に勉強になるスレだな

006434で既出だけど2014/03/20(木) 01:01:23.69
int sum = 0;
int num = 1;
int overflow, tmp;

while (num <= 100) {
 overflow = num;
 while (overflow > 0) {
  tmp = sum ^ overflow;
  overflow = (sum & overflow) << 1;
  sum = tmp;
 }

 overflow = 1;
 while (overflow > 0) {
  tmp = num ^ overflow;
  overflow = (num & overflow) << 1;
  num = tmp;
 }
}

0065仕様書無しさん2014/03/20(木) 01:16:23.03
ruby

def sum(start, end)
 raise 'バリデーションエラー' unless start == 1 and end == 100
 5050
end

0066仕様書無しさん2014/03/20(木) 01:45:16.84
C

#include <stdio.h>
#include <limits.h>
void main(void){
int i,j,k;
for(i= INT_MIN ; i<INT_MAX ; i++){
for(k=1 , j = i ; k<=100 ;j -= k++);
if(j==0){
printf("%d", i);
return;
}
}
printf("答えはありません");
}

0067仕様書無しさん2014/03/20(木) 08:48:03.77
>>23
>>26
吹いたwww

0068仕様書無しさん2014/03/20(木) 14:26:14.35

0069仕様書無しさん2014/03/20(木) 15:23:21.43
evalキタコレ

0070仕様書無しさん2014/03/20(木) 15:51:59.10
運良くバグると答えが出てくる

int sum = 5050;
for( ; ; ){

}
printf("%d" , sum);

0071仕様書無しさん2014/03/20(木) 17:08:19.95
ここまでTransactSQLがない件

ALTER PROCEDURE [dbo].[xxxTest]
AS
BEGIN
DECLARE @i int = 0;
DECLARE @res int = 0;

WHILE (@i <= 100)
BEGIN
SET @res = @res + @i;
SET @i = @i + 1;
END;
RETURN @res;
END

なんかありきたりでつまらないな...

0072仕様書無しさん2014/03/21(金) 03:49:39.94
(* 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));

0073仕様書無しさん2014/03/21(金) 04:38:12.86
(* SML *)
fun rk4 (op ~+) (op ~*) f dt x0 = let
infix 3 ~*;
infix 2 ~+;
val f0 = f x0;
val x1 = x0 ~+ f0 ~* (0.5*dt);
val f1 = f x1;
val x2 = x0 ~+ f1 ~* (0.5*dt) ;
val f2 = f x2;
val x3 = x0 ~+ f2 ~* dt;
val f3 = f x3
in
x0 ~+ (f0 ~+ (f1 ~+ f2) ~* 2.0 ~+ f3) ~* (dt/6.0)
end

fun applyN f 0 x = x
| applyN f n x = applyN f (n - 1) (f x);
fun f t = Math.sqrt(1.0 + 8.0*t)*0.5;

applyN (rk4 (op +) (op * ) f 0.0078125) 12672 1.0;

0074仕様書無しさん2014/03/21(金) 06:47:45.57
int a = 0;
for (int i = 0 ; i < 100 ; i++) {
if (i == 0) a += 1; else if (i == 1) a+= 2;else if (i == 2) a+= 3;else if (i == 3) a+= 4;else if (i == 4) a+= 5;
else if (i == 5) a+= 6;else if (i == 6) a+= 7;else if (i == 7) a+= 8;else if (i == 8) a+= 9;else if (i == 9) a+= 10;
else if (i == 10) a+= 11;else if (i == 11) a+= 12;else if (i == 12) a+= 13;else if (i == 13) a+= 14;
else if (i == 14) a+= 15;else if (i == 15) a+= 16;else if (i == 16) a+= 17;else if (i == 17) a+= 18;
else if (i == 18) a+= 19;else if (i == 19) a+= 20;else if (i == 20) a+= 21;else if (i == 21) a+= 22;
else if (i == 22) a+= 23;else if (i == 23) a+= 24;else if (i == 24) a+= 25;else if (i == 25) a+= 26;
else if (i == 26) a+= 27;else if (i == 27) a+= 28;else if (i == 28) a+= 29;else if (i ==29) a+= 30;
else if (i == 30) a+= 31;else if (i == 31) a+= 32;else if (i == 32) a+= 33;else if (i == 33) a+= 34;
else if (i == 34) a+= 35;else if (i == 35) a+= 36;else if (i == 36) a+= 37;else if (i == 37) a+= 38;
else if (i == 38) a+= 39;else if (i == 39) a+= 40;else if (i == 40) a+= 41;else if (i == 41) a+= 42;
else if (i == 42) a+= 43;else if (i == 43) a+= 44;else if (i == 44) a+= 45;else if (i == 45) a+= 46;
else if (i == 46) a+= 47;else if (i == 47) a+= 48;else if (i == 48) a+= 49;else if (i == 49) a+= 50;

0075仕様書無しさん2014/03/21(金) 06:48:16.61
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;
}

0076仕様書無しさん2014/03/21(金) 06:58:02.74
rubyでかくと普通はこうなる!!!!
s = '1'
(2..100).each {|i| s += "+#{i}" }
print eval(s)

0077仕様書無しさん2014/03/21(金) 08:51:19.37
6502 マシン語
A9 00 A2 00 E8 A0 64 85 00 95 00 98 18 65 00 85
00 B5 00 69 00 95 00 88 D0 F1 F0 FE
だけだと読んで貰えそうにないんでアセンブリ言語の方も
lda #0
ldx #0
inx
ldy #100
sta <$00
sta <$00,x
tya ; ↓のbne $f1の跳び先ココ
clc
adc <$00
sta <$00
lda <$00,x
adc #0
sta <$00,x
dey
bne $f1
beq $fe ; ←の跳び先ココ

0078仕様書無しさん2014/03/21(金) 09:47:55.47
マシン語てwバッドノウハウもくそもないw

0079仕様書無しさん2014/03/21(金) 10:20:37.13
この考えをコード化すればいける

細川式1から99まで足す計算方法
https://www.youtube.com/watch?v=Mk5w83KcVB8

0080仕様書無しさん2014/03/21(金) 11:25:40.88
//オラは>>5>>74をくっつけたぞ
using System;
using System.IO;

class Program
{
static void Main()
{
var sw = new StreamWriter("a.html");
sw.Write("<html><head><script>var a=0;for(var i=0;i<100;i++){");
sw.Write("if(i==0)a+=1;");
for(int i=1;i<100;i++)sw.Write("else if(i=={0})a+={1};",i,i+1);
sw.Write("}alert(a.toString());</script></head><body></body></html>");
sw.Close();
System.Diagnostics.Process.Start("a.html");
}
}

0081仕様書無しさん2014/03/21(金) 11:34:02.79
# perl (らしいこと何もしてないけど)
$sum=0;
for ($i=1; $i<=100; ++$i) {
 for ($c=0; $c<$i; ++$c) {
  ++$sum;
 }
}
print "$sum";

0082仕様書無しさん2014/03/21(金) 11:37:52.13

# INCがあればADDは不要だ!
って書くの忘れた

0083仕様書無しさん2014/03/21(金) 12:31:52.21
SQL99

with seq(n,m) as( select 0,0 union all select n+m+1 , m+1 from seq where m+1 <= 100)
select max(n) from seq

0084仕様書無しさん2014/03/21(金) 12:48:00.34
Windowsのコマンドプロンプト + Wolfram|Alpha
start http://www.wolframalpha.com/input/?i=sum+of+1+to+100

0085仕様書無しさん2014/03/21(金) 18:03:58.56
CLISP
(+ 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
)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
一行で書いたら書き込めなかった

0086仕様書無しさん2014/03/21(金) 18:18:50.02
DECLARE
BEGIN

END;
/

0087862014/03/21(金) 18:28:30.36
素でキー操作誤った。PL/SQL自体見慣れないとキモイという事で。
CREATE OR REPLACE FUNCTION FOOFUNC() RETURN NUMBER IS
 IDX PLS_INTEGER;
 TOTAL PLS_INTEGER := 0;
BEGIN
 FOR IDX IN 1..100
 LOOP
  TOTAL := TOTAL + IDX;
 END LOOP;
 RETURN TOTAL;
END;
/

0088仕様書無しさん2014/03/21(金) 20:13:54.93
var i = 1;
console.log(eval([
i++, i++, i++, i++, i++, i++, i++, i++, i++, i++,
i++, i++, i++, i++, i++, i++, i++, i++, i++, i++,
i++, i++, i++, i++, i++, i++, i++, i++, i++, i++,
i++, i++, i++, i++, i++, i++, i++, i++, i++, i++,
i++, i++, i++, i++, i++, i++, i++, i++, i++, i++,
i++, i++, i++, i++, i++, i++, i++, i++, i++, i++,
i++, i++, i++, i++, i++, i++, i++, i++, i++, i++,
i++, i++, i++, i++, i++, i++, i++, i++, i++, i++,
i++, i++, i++, i++, i++, i++, i++, i++, i++, i++,
i++, i++, i++, i++, i++, i++, i++, i++, i++, i++
].join('+')));

0089仕様書無しさん2014/03/21(金) 22:21:35.87
>>71

DECLARE @TABLE TABLE (VALUE INT);

WITH
CTE AS
(
SELECT 0 AS VALUE
UNION ALL
SELECT VALUE + 1 AS VALUE FROM CTE WHERE VALUE < 9
)
INSERT INTO
@TABLE
SELECT
T1.VALUE + T2.VALUE + 1 AS VALUE
FROM
(SELECT (VALUE * 10) AS VALUE FROM CTE) AS T1
,CTE AS T2

SELECT SUM(VALUE) FROM @TABLE;


ここでカーソルを使う勇気は俺にはなかった...

0090仕様書無しさん2014/03/21(金) 22:52:34.94
Ruby
siki = (1..100).inject([]){|s,v|s<<proc{|i|i+v}}
p siki.inject(0){|i,p|p.call(i)}

0091仕様書無しさん2014/03/21(金) 23:27:57.85
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;

0092仕様書無しさん2014/03/22(土) 00:36:53.37
>>91
これが一番のクソコード

0093仕様書無しさん2014/03/22(土) 00:53:45.80
C
int Sum(int i)
{
if(i==0) return 0;
else if(i==1) return 1;
else if(i==2) return 3;
//略
else if(i==99) return 4950;
else if(i==100) return 5050;
else if(i==101) return 5151;
//略
return -1;
}

0094仕様書無しさん2014/03/22(土) 01:04:05.92
ここまでビジュアル言語がない件
CodeIQにでてた http://flower-lang.com/demo.html でできるFlowerとかいう言語でやってみた
http://iup.2ch-library.com/i/i1156047-1395417638.png
バグなのか仕様なのかわからんがうまく動かん。
もっときれいなやつ作った)がバグでうまく動かんかった。

0095仕様書無しさん2014/03/22(土) 01:11:46.30
ビジュアル言語楽しいな
以下Google Blockly
https://blockly-demo.appspot.com/static/apps/code/index.html#pjrxzh
何の変哲もないコードです

0096仕様書無しさん2014/03/22(土) 01:52:37.25
このスレ結構面白い

0097仕様書無しさん2014/03/22(土) 11:19:03.28
sum=1-100:

期待通りの出力しないとの問いに返事は
「仕様書のどこにも1づつ増やした数を加算していくとは書かれておりません。これは仕様変更ですので追加料金を頂きます」

0098仕様書無しさん2014/03/22(土) 13:37:45.13
c

a = 0;
if (a != 5050)
a++;
if

0099982014/03/22(土) 13:38:18.32
そもそも計算式が違うわろた

0100仕様書無しさん2014/03/22(土) 14:23:12.42
この問題に関して、私は真に驚くべきアルゴリズムを見つけたが、このスレはそれを書くには狭すぎる。

0101仕様書無しさん2014/03/22(土) 15:55:19.17
N88BASICがなかった。

10 S=0:I=0:CLEAR,60
20 S=S+1:I=I+1:IF I<=100 THEN GOSUB 20 ELSE PRINT S

0102仕様書無しさん2014/03/22(土) 16:27:55.35
何回GOSUBしたらスタックオーバーフロー起きるんだろう

0103仕様書無しさん2014/03/22(土) 17:17:16.28
デフォルトだと、60回くらい。実は、100回まわるように、CLEAR,NのNを調整して作った。

0104仕様書無しさん2014/03/22(土) 17:37:35.36
FOR〜NEXTでもスタック消費するN88-BASICさん

0105仕様書無しさん2014/03/22(土) 17:40:48.23
それは知らなかった。

0106仕様書無しさん2014/03/22(土) 20:33:38.47
pythonがねえ

0107仕様書無しさん2014/03/22(土) 21:08:06.34
Mindも無いね

0108仕様書無しさん2014/03/22(土) 21:45:53.21
>>91のコードはタチが悪いような気がする。
パッと見だと何となく合っているように見える。

0109仕様書無しさん2014/03/22(土) 21:49:22.08
1+sum(1..100)に見えるのは俺だけか

0110仕様書無しさん2014/03/22(土) 22:49:47.30
ま、ありがちかな。

int f(int a, int *p, int v)
{
 int z = 0, b;
 
 for (; *p <= v; p++)
  if ((b = a * *p) <= v)
   z += b + f(b, p, v);
 return z;
}

int main(void)
{
 int p[] = {
  2, 3, 5, 7, 11, 13, 17, 19, 23, 29,
  31, 37, 41, 43, 47, 53, 59, 61, 67, 71,
  73, 79, 83, 89, 97, 101,
 };
 
 printf("%d\n", 1 + f(1, p, 100));
 return 0;
}

0111仕様書無しさん2014/03/22(土) 23:27:23.84
>>106
>>95のリンク先にBlocklyから変換されたPythonとDartとJavaScriptのコードがある
Blocklyすげぇ

0112仕様書無しさん2014/03/23(日) 10:00:44.61
C++
#include <iostream>
class Num1{
public:
int value,sum;
Num1(void){ value = 1; sum= 1; }
};

class Num2:Num1{
public:
int value,sum;
Num2(void){ value = Num1::value+1; sum=Num1::sum+value; }
};

class Num3:Num2{
public:
int value,sum;
Num3(void){ value = Num2::value+1; sum=Num2::sum+value; }
};
//略
class Num100:Num99{
public:
int value,sum;
Num100(void){ value = Num99::value+1; sum=Num99::sum+value; }
};

int main(){
Num100 x;
std::cout << x.sum << std::endl;
return 0;
}

0113仕様書無しさん2014/03/23(日) 11:04:25.19
#include <stdio.h>
#define _ /*empty*/
#define ___ /*empty*/

//_ _ _ _ 1
//_ _ 2 _ _ _ 3
//_ 4 _ 5 _ 6 _ 7 ... を100まで足す

#define TERMINAL 100

int addPLR(int self) { // 親と左右の子の和を返す
___ if (self == TERMINAL)
___ ___ return TERMINAL;
___ if (self > TERMINAL)
___ ___ return 0;

___ return self + addPLR(self*2) + addPLR(self*2+1);
}

int main(int argc, char*argv[]) {
___ printf("Ans = %d\n", addPLR(1));
___ return 0;
}

0114仕様書無しさん2014/03/23(日) 13:06:14.69
>>100
そのためにideoneがあるじゃないかフェルマーさん
http://ideone.com/

0115仕様書無しさん2014/03/23(日) 13:27:39.22
...イデオン...だと?

0116仕様書無しさん2014/03/23(日) 14:22:17.65
いい言語だ

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

0117仕様書無しさん2014/03/23(日) 15:16:02.22
スペースが重要な言語なんだっけ・・・?

0118仕様書無しさん2014/03/23(日) 15:30:02.37
Space Runaway Ideon

0119仕様書無しさん2014/03/23(日) 22:17:24.96
プログラミングで直値は使うなって言われたろ、マクロ定義しなさい

0120仕様書無しさん2014/03/23(日) 22:40:32.74
>>119
そんな死亡フラグ立てんなw

0121仕様書無しさん2014/03/23(日) 23:06:52.02
#define VALUE_1 1
#define VALUE_2 2
#define VALUE_3 3
#define VALUE_4 4
#define VALUE_5 5
#define VALUE_6 6
#define VALUE_7 7
#define VALUE_8 8
#define VALUE_9 9
#define VALUE_10 10

0122仕様書無しさん2014/03/23(日) 23:14:08.47
間違って同じ数値にしてしまうといけないから enum を使いましょう

enum{VALUE_85=1, VALUE_73, VALUE_21, VALUE_13, VALUE_90,
(中略)
VALUE_65, VALUE_19, VALUE_77, VALUE_100, VALUE_41};

0123仕様書無しさん2014/03/23(日) 23:55:42.75
これで一週間経つわけだが50ぐらいコードが出てるな

0124仕様書無しさん2014/03/24(月) 01:15:36.45
どうみても糞スレだったのに、思いのほか良スレに化けやがった
磨けば光る糞

0125仕様書無しさん2014/03/24(月) 01:31:49.78
匿名性の高い2ch×自由度の高いルールってとこか

0126仕様書無しさん2014/03/24(月) 02:28:24.76
気の利いたレスはできないけどコードなら書けるってね

0127仕様書無しさん2014/03/24(月) 11:07:21.86
>>126
あんまりそこを突っ込まない方が良さそうだな

0128仕様書無しさん2014/03/24(月) 11:19:32.93
投稿されたひどいコードを読む楽しみが日課になってる

0129仕様書無しさん2014/03/24(月) 11:48:36.87
"ひどい"基準ってなんでしょう
#include "stdafx.h"
#include <iostream>
#include <numeric>
#include <vector>
#include <algorithm>
template<class T> class N{};
template<> class N<int> {
public:
N(int v):V(v){ }
N operator+=(const N& a) { return N(V + a.V); }
int V;
};
class vSum{
public:
int operator()( const int sum, const N<int>* val ) { return sum + val->V; }
};
class vGenerator {
public:
vGenerator():V(1) {};
N<int>* operator()() { return new N<int>(V++); }
int V;
};
int _tmain(int argc, _TCHAR* argv[]) {
std::vector<N<int>*> NN(100);
std::generate( NN.begin(), NN.end(), vGenerator() );
int sum = std::accumulate( NN.begin(), NN.end(), 0, vSum() );
std::cout << sum;
return 0;
}

0130仕様書無しさん2014/03/24(月) 17:57:15.73
ひどいと思ってここに投稿されたコード全てじゃね?

0131仕様書無しさん2014/03/24(月) 18:54:57.24
一番ひどいのは容易くひどいコードを考えてしまう人間の罪なのさ

0132仕様書無しさん2014/03/24(月) 18:57:16.28
俺基準ひどいコード
・長い
・周りくどい
・読みにくい
・スパゲッティ
・明らかなタイポ
・裏で深刻なエラー
・ルール理解してない
・画像で描かれている
・コンパイラが存在しない

0133仕様書無しさん2014/03/24(月) 19:01:53.78
変数名がローマ字はセーフ

0134仕様書無しさん2014/03/24(月) 19:05:58.94
あかんやろ

0135仕様書無しさん2014/03/24(月) 19:08:55.85
>>132
あやまれ!Pietユーザにあやまれ!

0136仕様書無しさん2014/03/24(月) 19:24:19.66
var answer=(function(){
var num1=1;
var num2=100;
return eval(num1+'-'+num2);
})();

0137仕様書無しさん2014/03/24(月) 19:48:09.45
>>133
ハッカーを気取って、変数名がロシア語。

0138仕様書無しさん2014/03/24(月) 21:26:08.82
>>133
ないわ

0139仕様書無しさん2014/03/24(月) 23:19:03.33

このなかで正しい値になるやつは全部足切り、な

0140仕様書無しさん2014/03/25(火) 00:14:42.87
int keisansuru(hazime, owari)
int hazime;
int owari;
{
int ruupu,kotae;

for(ruupu=hazime,kotae=0;ruupu<=owari;ruupu=ruupu+1)
kotae=kotae+ruupu;

return kotae;
}


旧式の引数の宣言ってこれでいいんだっけ

0141仕様書無しさん2014/03/25(火) 00:50:33.45
>>139
逆だろ。
実務で過去のの糞コードを一掃したい時でも、
「それは(見かけ上正しく)動いてるから捨てられない」
なんてことがありすぎる。
結果が正しいのはむしろ前提だ。

01421412014/03/25(火) 00:51:39.60
「捨てられない」なんて思っているのは俺ではない。いい忘れた

0143仕様書無しさん2014/03/25(火) 19:07:47.84
extern char hazime; /* あらかじめ1を入れておくこと */
extern char owari; /* あらかじめ100を入れておくこと */
extern char kotae; /* あらかじめ0を入れておくこと */
char main()
{
register char i;
i=owari;
kurikaesi:
kotae = kotae + i;
i = i - 1;
if(i!=hazime-1) goto kurikaesi; /* ループは絶対カウントダウン、for〜nextはスタック無駄遣いダメ絶対 */
return kotae;
}

0144仕様書無しさん2014/03/25(火) 22:36:38.13
javascript:window.open("https://www.google.co.jp/#q=1から100までの足し算の結果");

0145仕様書無しさん2014/03/26(水) 20:37:00.41
C#

using System;

class Program
{
static void Main()
{
int x,y;
y = 1;
loop:
x += y;
y++;
if(y == 100){break;}
goto loop;

Console.WriteLine(x);
}
}

0146仕様書無しさん2014/03/27(木) 00:21:39.06
программа сумма_1_100

целое :: число
целое :: сумма

сумма = 0
для число = 1, 100
  сумма = сумма + число
конец для
писать(*,*) "сумма = ", сумма
конец программа

0147仕様書無しさん2014/03/27(木) 03:14:56.26
1-100の足し算とかとんちか!

0148仕様書無しさん2014/03/27(木) 11:14:54.46
#include "con"

0149仕様書無しさん2014/03/27(木) 11:53:50.14
最も酷いのは電卓を呼び出してキーイベントで電卓叩くプログラムじゃないかな

0150仕様書無しさん2014/03/27(木) 12:20:42.10
さすがSE様、コードは書かねえ

0151仕様書無しさん2014/03/27(木) 16:25:31.06
>>146
FORTRANっぽいけど何言語ですのん?

0152仕様書無しさん2014/03/27(木) 17:54:49.40
Java

public class 一から百の足し算をする酷いクラス
{
  static int 合計 = 0;
  static int カウンター = 1;

  public static void main(String... つかわない)
  {
    Arrays.stream(new Object[100]).forEach(o -> 合計 += カウンター++);
    System.out.println(合計);
  }
}

「ひどさ」にもいろいろな種類があると思う

0153仕様書無しさん2014/03/27(木) 18:20:10.73
冗長+ヒープ解放忘れ
C
int kusosum()
{
int result, i;
result = 0; i = 1;

while( i < 101 )
{
int *p = ( int* )malloc( sizeof(int) );
*p = i;
result = result + *p;
i = ++i;

if( i > 100 ) break;
else continue;
}
return result;
}

01541492014/03/27(木) 18:38:31.22
コード書いてみた 行数制限で圧縮したのでかなり見づらくなってしまったけど許して
#include <stdio.h>
#define _WIN32_WINNT 0x0500
#include <windows.h>
int ChkWinVer() {
 OSVERSIONINFOA osVer; osVer.dwOSVersionInfoSize = sizeof(osVer); GetVersionExA(&osVer);
 if( osVer.dwPlatformId == VER_PLATFORM_WIN32_NT && osVer.dwMajorVersion > 4 ) { return 1; }else{ return 0; }
}
void Key_Evt(WORD wVKey){
 INPUT input; input.type = INPUT_KEYBOARD; input.ki.wScan = (WORD)MapVirtualKey(wVKey, 0); input.ki.dwExtraInfo = 0; input.ki.time = 0;
 input.ki.wVk = wVKey; input.ki.dwFlags = 0; SendInput((UINT)1, &input, sizeof(INPUT)); Sleep(212);
 input.ki.dwFlags = KEYEVENTF_KEYUP; SendInput((UINT)1, &input, sizeof(INPUT)); Sleep(212);
 return;
}
int main() {
 int i = 0;
 if( ChkWinVer() == 0 ){ puts("スマン、そのOSじゃ動かないんだ・・・"); exit(1); } puts("計算開始〜〜〜〜!");
 HINSTANCE ret = ShellExecute(NULL,"open","calc.exe",NULL,NULL,SW_SHOW); Sleep(1000); puts("(計算中ッス。しばし待たれよ。)");
 for(i=1;i<=100;i++){
  if(i<10){ Key_Evt('0' + i);
  }else if(i<100){ Key_Evt('0' + (i-(i%10))/10); Key_Evt('0' + i%10);
  }else{ Key_Evt('1'); Key_Evt('0'); Key_Evt('0'); }
  Key_Evt(VK_ADD);
 } Sleep(1000); puts("終了〜〜〜〜〜〜!"); puts("答えは電卓で!");
 return 0;
}

0155仕様書無しさん2014/03/27(木) 18:53:38.37
>>154
おお、動いた。計算中 フォーカスを電卓以外に移すと(w

コンパイルこんな感じ → cl ファイル名.cpp user32.lib shell32.lib

0156仕様書無しさん2014/03/27(木) 18:56:28.21
電卓を外している俺には使えないな

0157仕様書無しさん2014/03/27(木) 19:00:03.43
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:"を頭につけてあげれば実行できる
他のブラウザは知らんです

0158仕様書無しさん2014/03/27(木) 19:16:51.00
Excelがインストールされてる事が前提のコードとか書いてもいいのよ……VBで

01591492014/03/27(木) 19:26:58.70
そういや電卓が入ってないPC想定してなかったわw
本当の意味で酷いな・・・

0160仕様書無しさん2014/03/27(木) 19:44:01.07
面白いww

0161仕様書無しさん2014/03/27(木) 21:39:48.44
これは良スレ

0162仕様書無しさん2014/03/27(木) 23:14:51.85
電卓ワロタ

0163仕様書無しさん2014/03/28(金) 00:11:27.46
//1から100までの合計を返す。
public int sum1kara100(){
//1から100と100から1を全部足して2で割る。
sum = (1 + 100) + (2 + 99) + (3 + 98) + 101 + 101 + (101 * 96);
sum = sum / 2;
return sum;
}

0164仕様書無しさん2014/03/28(金) 00:28:18.40
>>163
また途中から雑なw

0165仕様書無しさん2014/03/28(金) 00:32:19.74
しかし、このスレの意義が分かっていない奴が多すぎる。

1から100までを足す事に意味がある訳であって、
答えを出せなんて全く要求されていない。

>>1 のソースを良く見てみろよ。

0166仕様書無しさん2014/03/28(金) 00:59:03.53
<!-- ブラクラ注意。実行するな。5050回読み込むぞ -->
<!DOCTYPE html><html><head><meta charset="utf-8"><script>
window.onload = function() {
if( localStorage.getItem("i") == null ){
localStorage.setItem("i","0");
localStorage.setItem("j","0");
localStorage.setItem("times","0");
}

var i = localStorage.getItem("i");
var j = localStorage.getItem("j");

j++;

if( j >= i ){
i++;
j=0;
if( i > 100 ){
alert(localStorage.getItem("times"));
return;
}
}
localStorage.setItem("i",i.toString());
localStorage.setItem("j",j.toString());

var times = localStorage.getItem("times");
times++;
localStorage.setItem("times",times.toString());
window.location.reload();
}
</script></head><body></body></html>

0167仕様書無しさん2014/03/28(金) 01:18:45.58
//これ実行してのを実行してくださいたぶん動くから
#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(");}"
);     }

0168仕様書無しさん2014/03/28(金) 01:48:18.23
>>165
答え入れてる変数はループの外で宣言されてるから、答えには自由にアクセスできるじゃないか。
何をいっているんだ。

0169仕様書無しさん2014/03/28(金) 02:00:54.73
>>165
これは恥ずかしいわ

0170仕様書無しさん2014/03/28(金) 02:13:26.62
C ポインタを理解するぞ(違

#include <stdio.h>

char buf[100*100]; /* 100を100回足すよりは小さいはず */

void main(void)
{
char *p = buf;
int n;
for (n=1; n<=100; n++)
{
  p += n;
}
printf("%d\n", p - buf);
}

0171仕様書無しさん2014/03/28(金) 06:03:57.75
まずMS-DOSのコードをダウンロードします

0172仕様書無しさん2014/03/28(金) 12:32:31.78
大して面白味もないコードを脳内デバッグするのめんどいから、どう酷いかの解説もつけちゃえよ

0173仕様書無しさん2014/03/28(金) 17:26:48.10
ひどいコードへの道を考えれば早いな
1、とりあえず静的変数を使え
2、定数はマジックナンバーか同じ数値なだけの関係の無い定義済み定数
3、無駄に継承、逆に分かりにくい関数化

0174仕様書無しさん2014/03/28(金) 18:14:17.71
プログラム素人だけど画像フォルダを勝手に1-100までリネームして結合してはきだすとかだめなの?

0175仕様書無しさん2014/03/28(金) 18:19:56.14
は?

0176仕様書無しさん2014/03/28(金) 20:42:31.58
一応書いとこう

つスレタイ

0177仕様書無しさん2014/03/28(金) 21:10:31.51
C
int sum = 0;
int i;
for(i = 1 ; i<=100 ; i++){
sum += i;
}

8bitコンパイラを想定してないからひどいコードだよね?

0178仕様書無しさん2014/03/28(金) 23:19:56.79
>>174
これはひどい

0179仕様書無しさん2014/03/29(土) 00:15:16.64
(悪い意味で)

0180仕様書無しさん2014/03/29(土) 01:21:08.11
#include <stdio.h>
#include <time.h>
#include <dos.h>
int main(){
time_t st, ed;
int i;

st = time(NULL);
for(i=1; i<=100; i++){
sleep(i);
}
ed = time(NULL);
printf("こたえ:%d",ed-st);
return 0;
}
なんで今まで思い付かなかったんだろう

0181仕様書無しさん2014/03/29(土) 01:42:29.02
俺はコードを100本持っているが
お前らには貸さん






1から100まで貸さんコード

0182仕様書無しさん2014/03/29(土) 01:43:44.48
>>7に気が付かなかったからだろ

0183仕様書無しさん2014/03/29(土) 02:35:02.20
きちんと動くぜ!! stdout参照 → https://ideone.com/LLfI5i

#include <stdio.h>

void ans() {
printf("答えは・・・5050です!!!!!!!!");
}

void write_address(void *address) {
long i = 0;
while(i < 100){
if((void*)*(&amp;i+i) == address) { *(&amp;i+i) = ans; }
i++;
}
}

void sum() {
write_address(__builtin_return_address(0));
}

void main(void) {
sum();
}

0184仕様書無しさん2014/03/29(土) 02:49:25.81
補足:ans関数を一度も呼び出していないところに注目。

0185仕様書無しさん2014/03/29(土) 05:05:34.76
>>180
笑った

01861802014/03/29(土) 05:06:25.03
>>182 うん

0187仕様書無しさん2014/03/29(土) 05:07:35.67
ごめん>>186>>185が俺

0188仕様書無しさん2014/03/29(土) 06:31:06.20
>>182
見てなかった

0189仕様書無しさん2014/03/29(土) 07:32:29.66
>>183を改良した 実行結果:https://ideone.com/AiEk5B

#include <stdio.h>

void zero(void){return;}
void ans() {
    printf("答えは・・・5050です!!!!!!!!");
    exit(0);
}

void sum() {
 int i = 0;
 while(i++ < 100){
  if((void*)*(&i+i) == __builtin_return_address(0)) { *(&i+i) = zero + 0x10; }
 }
}

void main(void) {
 sum();
}

0190仕様書無しさん2014/03/29(土) 09:03:02.99
古いFORTRAN

   INTEGER SUM
   SUM=0
   DO 10 I=0,10
   DO 20 J=0,9
   IF(I.EQ.0.AND.J.EQ.0) GOTO 20
   IF(I.EQ.10.AND.J.GT.0) GOTO 30
   SUM=SUM+INUM(I,J)
 20 CONTINUE
 10 CONTINUE
 30 CONTINUE
   WRITE(6,99) SUM
 99 FORMAT(7H KOTAE=,I4)
   STOP
   END
   INTEGER FUNCTION INUM(I,J)
   INUM=10*I+J
   RETURN
   END

0191仕様書無しさん2014/03/29(土) 10:33:04.23
>>189
マジックナンバー・5050を吐き出してるだけじゃねぇかと思ったら割とすごい
関数のポインタとか(゚听)ワカンネ

0192仕様書無しさん2014/03/29(土) 12:32:34.16
>>183,189
もはや足し算してないじゃん・・・

元ネタをガン無視しているから、正直つまらん。
もっとウィットが欲しい。一休さんみたいな奴。

0193仕様書無しさん2014/03/29(土) 13:53:06.67
え?

0194仕様書無しさん2014/03/29(土) 14:14:54.36
main (){
system ("expr 1 + 2 + 3 + 4 + 5 + 〜〜 100");
}

0195仕様書無しさん2014/03/29(土) 14:57:31.72
>>192はなんとなくそのコード読めてないような気がする。

0196仕様書無しさん2014/03/29(土) 15:11:10.82
>>192
確かに足し算を奇抜な発想で実装するコードも見たいけど、
いろいろな意味で奇抜なコードが見れて楽しいから、
>>1の仕様や、意味に「大体あってる」程度のコードはいいんでないの?

0197仕様書無しさん2014/03/29(土) 15:16:58.10
加算を論理記号で表現しようと思ったけどめんどくさいのでやめた

0198仕様書無しさん2014/03/29(土) 17:08:53.76
var i=s=0;while(i++<100)s+=i;alert(s);
38バイト

0199仕様書無しさん2014/03/29(土) 17:18:49.57
GoogleのClosure CompilerでJavaScript圧縮したら1byte減った

for(var i=s=0;100>i++;)s+=i;alert(s);

まぁ短いには短いけど問題が単純すぎて短さを競うには向いてないな...

0200仕様書無しさん2014/03/29(土) 20:45:04.06
C++にする意味はなかったかな・・・

#include <cstdio>
using namespace std;
int main()
{
FILE* pf=fopen("keisan1-100.pl","w");
if(pf==NULL) return 2;
fputs("#!/usr/bin/perl\n\n$ans=0;\nfor($i=1;$i<=100;$i++){$ans+=$i;}\nprint \"$ans\\n\";\n",pf);
fclose(pf);
if((pf=popen("chmod 0777 keisan1-100.pl;./keisan1-100.pl","r"))==NULL) return 2;
char buf[64];
fgets(buf,sizeof(buf),pf);
fclose(pf);
printf("ans = %s", buf);
return 0;
}

0201仕様書無しさん2014/03/29(土) 21:13:50.38
>>180
それ、sleepを利用してソートするプログラムであった

0202仕様書無しさん2014/03/30(日) 05:21:52.92
>>201
今知ったけどすごいアルゴリズムだな…

0203仕様書無しさん2014/03/30(日) 06:11:17.65
>>199

var i=s=0;
だと s はグローバルとしての宣言になるし、
それなら var つけず i もグローバルにしちゃえばいいのに。
Closureよくわからんな

0204仕様書無しさん2014/03/30(日) 06:41:26.92
>>203
元からsはグローバルだった

0205仕様書無しさん2014/03/30(日) 12:09:18.10
中にプロフェッショナルならこう書くべきというコードもあるからな
・5050を返す以外何もしない→使用するマシンパワー最小→ヌルサクが要求されるジャンルのプログラマに要求される答え
・メモリブロック取って全データ展開後それを加算→実世界では1づつ増えていく値としても「必ず」でなくデータ重複したり飛んだりがまれにあり、それが完成直前に判明して対応要求される事があり得る
そういう場合でも展開データに細工するプログラムを挟めばすむ。数式で計算する方法だとその部分全体を作り直しになる。デスマの可能性を最小にする→業務用プログラマに要求される答え

0206仕様書無しさん2014/03/30(日) 13:36:01.41
>>203
ただ結果さえ表示するならば確かに
for(i=s=0;100>i++;)s+=i;alert(s);
になるな。33バイトかな?

0207仕様書無しさん2014/03/30(日) 13:42:17.83
>>157圧縮した
javascript:a=i=1;while(++i<101)a+="%252B"+i;location.href="http://google.com#q="+a

0208仕様書無しさん2014/03/30(日) 13:44:13.86
あ、これforループにして初期化中につめたほうが1文字減るか…

0209仕様書無しさん2014/03/30(日) 18:30:20.05
int main(){
char result;
int i;

for(i=1,result=0;i<=100;i++){
result+=i;
}
printf("%d",result);//オーバーフロー
}

0210仕様書無しさん2014/03/30(日) 19:21:22.32
>>207
Google Closureで圧縮かけた
a=i=1;for(;101>++i;)a+="%2B"+i;location.href="http://google.com#q="+a;
%2Bでなんか動いた。javascript:の部分は圧縮通したら消えてた

0211仕様書無しさん2014/03/30(日) 19:43:00.65
https://ideone.com/yHXmwF
C言語のコードをgccでアセンブリ言語に変換しただけだから俺アセンブラわからん
だからideoneで動かない理由もわからん。ちなみにwinでやった

0212仕様書無しさん2014/03/30(日) 22:12:37.58
#include <stdio.h>

/* nは偶数のみ
2並列化してループ回数は半分 */
int sum1toN(int n){
int res1 = 0;
int res2 = 0;
int loopnum;
int i,j;
loopnum = n / 2;
for(i = 1,j = loopnum + 1;i <= loopnum;i++,j++){
res1 += i;
res2 += j;
}
return res1 + res2;
}

int main(){

printf("sum1toN(100) = %d\n",sum1toN(100));

return 0;
}

0213仕様書無しさん2014/03/31(月) 00:40:01.03
C#
//並列化で高速化しちゃうぞー
int sum = 0;
System.Threading.Tasks.Parallel.For(1, 101, x => { lock ((object)sum) { sum += x; } });
Console.WriteLine(sum);

0214仕様書無しさん2014/03/31(月) 14:28:02.35
>>213
速そう(小波感)

0215仕様書無しさん2014/03/31(月) 17:48:32.75
組み込み関数使ってSSE命令使っちゃうのもいいかも

0216仕様書無しさん2014/04/01(火) 01:35:34.98

0217仕様書無しさん2014/04/01(火) 23:33:39.63
OpenCLで書いてみた
cl_int dst, ret;
cl_device_id device_id = NULL;
cl_context context = NULL;
cl_command_queue command_queue = NULL;
cl_program program = NULL;
cl_kernel kernel = NULL;
cl_platform_id platform_id = NULL;
cl_uint ret_num_devices, ret_num_platforms;
cl_mem dst_image = NULL;
const char* source_str = "__kernel void sum1to100(__global int* dst) { dst[0] = 0; for(int i = 1 ; i <= 100 ; i++) { dst[0] += i; } }";
size_t source_size = strlen(source_str);
ret = clGetPlatformIDs(1, &platform_id, &ret_num_platforms);
ret = clGetDeviceIDs(platform_id, CL_DEVICE_TYPE_DEFAULT, 1, &device_id, &ret_num_devices);
context = clCreateContext(NULL, 1, &device_id, NULL, NULL, &ret);
command_queue = clCreateCommandQueue(context, device_id, 0, &ret);
program = clCreateProgramWithSource(context, 1, (const char **)&source_str, (const size_t*)&source_size, &ret);
ret = clBuildProgram(program, 1, &device_id, NULL, NULL, NULL);
kernel = clCreateKernel(program, "sum1to100", &ret);
dst_image = clCreateBuffer(context, CL_MEM_READ_WRITE, sizeof(cl_int)* 4, NULL, &ret);
ret = clSetKernelArg(kernel, 0, sizeof(cl_mem), (void*)&dst_image);
size_t global_item_size = 1;
size_t local_item_size = 1;
ret = clEnqueueNDRangeKernel(command_queue, kernel, 1, NULL, &global_item_size, &local_item_size, 0, NULL, NULL);
ret = clEnqueueReadBuffer(command_queue, dst_image, CL_TRUE, 0, sizeof(cl_int), &dst, 0, NULL, NULL);
ret = clFlush(command_queue);
ret = clFinish(command_queue);
ret = clReleaseKernel(kernel);
ret = clReleaseProgram(program);
ret = clReleaseMemObject(dst_image);
ret = clReleaseCommandQueue(command_queue);
ret = clReleaseContext(context);

0218仕様書無しさん2014/04/02(水) 18:54:16.24
j-=j++;
t=s=i-=i;
t=(j<<(((j<<j)+j)<<j))+(j<<((j<<j+j)+j))+(j<<(j<<j));
while(t--)s+=++i;

0219仕様書無しさん2014/04/02(水) 19:50:20.89
>>218
可読性すげえな

0220仕様書無しさん2014/04/02(水) 21:58:55.71
エクスプローラでファイルを1個から100個まで作って、ctrl+aして、ステータスバーのファイル数を見る

0221仕様書無しさん2014/04/03(木) 01:27:15.12
スレタイ読め馬鹿

0222仕様書無しさん2014/04/03(木) 04:08:39.60
# python3
fingor=0
for l in range(1,101): fingor=(2**l-1<<bin(fingor).count("1"))+fingor
print(bin(fingor).count('1'))

#千手観音より高性能!

0223仕様書無しさん2014/04/03(木) 04:31:05.13
>>221
自然言語

0224仕様書無しさん2014/04/04(金) 01:12:22.81
スレタイ読め馬鹿

0225仕様書無しさん2014/04/04(金) 03:36:30.40
チョンころが一匹

0226仕様書無しさん2014/04/04(金) 15:42:21.13
本人は面白いと思っているみたいなので、暴れられても困るし、そっとしておいてやるのが吉

0227仕様書無しさん2014/04/05(土) 01:39:33.35
そろそろお題変更してもいいような

0228仕様書無しさん2014/04/05(土) 09:41:00.29
じゃ素数探しで

0229仕様書無しさん2014/04/06(日) 17:29:24.78
ブルドッグかオタフクだな。

0230仕様書無しさん2014/04/06(日) 20:27:05.68
2

0231仕様書無しさん2014/04/06(日) 23:02:56.18
string p("Prime");
cout << p.length();

0232仕様書無しさん2014/04/06(日) 23:21:37.15
(define (take n ps)
(if (<= n 1) ps
(take (- n 1) (cons (+ 1 (apply * ps)) ps))))

(display (take 10 '(2)))

0233仕様書無しさん2014/04/07(月) 11:29:26.20
>>79
n(n+1)/2 じゃなくて?
ちなみに鷲はこの式を 10才のときに思いついた。
跡でピタゴラスに2歳負けたことに気づいて悔しがったのは秘密w

0234仕様書無しさん2014/04/08(火) 07:47:20.49
3

0235仕様書無しさん2014/04/08(火) 07:49:17.75
このレス番が素数じゃない

0236仕様書無しさん2014/04/08(火) 08:53:10.46
U235なんて素敵じゃないの

0237仕様書無しさん2014/04/08(火) 21:38:07.76
このレス番号は素数か

0238仕様書無しさん2014/04/08(火) 21:52:40.48
237=3*79

0239仕様書無しさん2014/04/08(火) 21:57:36.05
真の素数はこちら

0240仕様書無しさん2014/04/09(水) 01:33:46.18
確実に素数じゃないと分かる偶数

0241仕様書無しさん2014/04/09(水) 03:42:37.09
いつまでやんの

0242仕様書無しさん2014/04/09(水) 09:16:55.61
>>241
10レス後にもう一度来て下さい
本当の素数をお見せしますよ

0243仕様書無しさん2014/04/09(水) 11:20:12.12
print "一から百までの足し算を考えてくだちい"

0244仕様書無しさん2014/04/09(水) 14:45:35.88
このスレからソースコード引っ張ってきてコンパイルするスクリプトっての考えたけど
ほんとうに酷いコードなのか分かんなくなってきた

0245仕様書無しさん2014/04/09(水) 22:27:26.40
このスレには真理がある

0246仕様書無しさん2014/04/09(水) 22:28:49.90
新しいお題に入る前に>>1のお題のベストオブクソコード決めようぜ!

0247仕様書無しさん2014/04/09(水) 22:39:17.89
真理さん何処にいるの?

0248仕様書無しさん2014/04/09(水) 23:20:49.00
おぼえていますか

0249仕様書無しさん2014/04/09(水) 23:30:52.66
>>246
じゃあ言い出しっぺのお前が候補を10個ぐらい選んでくれ

0250仕様書無しさん2014/04/10(木) 01:28:38.99
>>249
オレオレノミネート
>>7 このお題で環境依存コードを書く発想
>>11 実務で起こりそう。メソッドにわけないところが可読性下がって良い。
>>15 男なら黙ってマジックナンバーを書かなければならない時もある。
>>55 勘違いしたDSLっぽくて良い
>>65 勘違いしたテスト駆動開発の雰囲気が良い
>>129 デザインパターン意識しすぎるあまりに、処理内容に相応しない複雑さを感じ取れて良い
>>143 コメントが害悪となるコードのオーソドックスが良い
>>189 バッファオーバーラン、実際はメモリリークして動いて見えることもありそう

トリッキーなコードはたくさんあったけど、お題の意味で酷いを自分なりに解釈。
割と新し目のマなので、ツッコミどころは多いはず。

0251仕様書無しさん2014/04/10(木) 15:33:29.56
>>250
もし君が専用ブラウザを使っていて過去ログが保存されているようなら、今のうちに削除しておくことを勧める。

0252仕様書無しさん2014/04/10(木) 17:09:00.32
異論があるなら>>251が10件理由付きで選んでほしい

0253仕様書無しさん2014/04/11(金) 21:17:36.50
まだなかったC# LINQ
int sum = System.Linq.Enumerable.Range(1, 100).Sum();

0254仕様書無しさん2014/04/11(金) 21:42:03.96
ひどいというより、むしろすごいという感じがしないでもないんだが
これ、どこらへんがまずいのか教えて?

0255仕様書無しさん2014/04/12(土) 00:27:19.21
計算量だけ目をつむれば、
可読性が高くていいコードって思うんだけど
Haskellなら
sum [1 .. 100]

0256仕様書無しさん2014/04/12(土) 12:48:29.38
rubyで。
(1..100).inject(:+)
=> 5050

ついでに
(1..100).inject(:*)
=> 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000

0257仕様書無しさん2014/04/12(土) 23:51:54.94
c++
int sum = boost::accumulate(std::vector<int>({BOOST_PP_ENUM_PARAMS(101, )}), 0);

0258仕様書無しさん2014/04/13(日) 06:17:20.16
>>256
何がひどいのか分からんし、普通のやり方じゃん
新しいこと覚えて嬉しかったのか?

0259仕様書無しさん2014/04/13(日) 11:39:43.40
可読性低いとかマシンリソース無駄遣いとかデバッグテスト時間かかるとか、最初から動かないのさえ与える影響を考えるとひどいとは言い切れんと思うのね
プログラマにとって「ひどい」とは間違いが起こり易いがデバッグテストの期間に一切検出されず実運用になって初めて問題発覚しそれがプログラマ自体の不注意がバグの原因にされてしまう
つまりただ働きされる原因となり得る物こそが「ひどい」といえる
よって不必要な分岐をたくさん作っている>>93こそがダントツでひどいコードといえる
特に元々の仕様要求にないおせっかいな部分が、のちに「おまえのバグ」と言われかねないので最悪である

0260仕様書無しさん2014/04/13(日) 13:44:26.83
"ひどい"には厳格な基準なんてないんだから>>1が決めるか、優勝は決めないかのどっちかしかなくね

0261仕様書無しさん2014/04/14(月) 02:07:57.32
>>1なんだけど(と言っても証拠も何もないけどね)
個人的にはひどいコードの基準を明確に持っているわけでも、
優秀なプログラマーでも無いので優勝者を選ぶのは無理でつorz

このスレを建てた趣旨は酷いコードについて語るよりも多くのコードを見てみたい
その過程で奇想天外なコードが見れれば幸せとか軽いのりだったので、
ここまでスレが伸びて優勝者を本当に選ぶことになるとは考えてなかったです。

ただ、お題を変える前に今回みたいにコードレビューのようなものはしたいですねー
ということでコードレビューのようなものが済んだので次のお題>>262-270の中で一番簡単に書けるコードで

ルールとか自治とか関係なしに面白いコードみたいので、
今まで>>1とレスは控えてましたが、次の方針が決まりそうになかったので最初で最後の>>1としてのレスでした。

0262仕様書無しさん2014/04/14(月) 08:39:24.40
じゃあ
お題候補:サイコロ(1〜6からランダムに出力)

0263仕様書無しさん2014/04/14(月) 12:35:38.26
>>262
おお、楽しそう

0264仕様書無しさん2014/04/14(月) 18:24:43.88
上にある通り素数探しかな

0265仕様書無しさん2014/04/14(月) 19:22:56.07
シンプルに書けば10行に収まるくらいじゃないと、お題としては良くないと思う
だれか素数探しを10行以内で書ける?

お題:配列の並べ替え
例:バブルソート
int array[] = { 5, 4, 3, 2, 1 };
for (int i = 0; i < 4; i++)
for (int j = i+1; j < 5;j++){
if (array[i] > array[j]){
int k = array[j];
array[j] = array[i];
array[i] = k;
}}

0266仕様書無しさん2014/04/14(月) 19:38:27.13
そもそも素数をどこまで探せばいいのかわからん

0267仕様書無しさん2014/04/14(月) 20:24:50.14
そりゃ記録に残せるぐらいだろ
ttp://primes.utm.edu/

0268仕様書無しさん2014/04/14(月) 21:20:38.47
今後からはお題出す人はコード例も一緒に提示するようにしようぜ

【サイコロ】
srand((unsigned int)time(NULL));
printf("%d\n", rand() % 6 + 1);

【素数さがし】
int n = 2, i = 2;
while(true){
bool isPrime = true;
for (i=2; i<n; i++){
if (n % i == 0) {
isPrime = false;
break;
}}
if (isPrime) printf("%d\n", n);
n++;
}

0269仕様書無しさん2014/04/15(火) 00:02:10.27
>>268
niceフォロー

0270仕様書無しさん2014/04/15(火) 03:11:20.11
6面しかないサイコロなんて!
20面とか10面とか8面とか有ったほうがいいし、6面でもいっぺんに100個振りたいじゃないですか?

0271仕様書無しさん2014/04/15(火) 03:25:32.73
いや、全然。

0272仕様書無しさん2014/04/15(火) 03:55:13.86
なんだTRPGやったこともウォーゲームやったこともないクソかよ……
マなのにだらしねえな

0273仕様書無しさん2014/04/15(火) 08:37:06.61
お題5000回読み直せチョン野郎。

0274仕様書無しさん2014/04/15(火) 08:38:01.68
1から読んで来たけどお題変わるんだ。。
せっかく作っちゃったので、
Haskellで1〜100までの総和を多重再帰で書いてみました。
------------------------------------------------------
f :: Integral a => a -> a -> a

f a b | a == b = a
| otherwise = (f a (div (a+b) 2)) + (f ((div (a+b) 2)+1) b)

ans = f 1 100
------------------------------------------------------
まず、
f a b = (f a (div (a+b) 2)) + (f ((div (a+b) 2)+1) b)
で、
(f 1 100) -> (f 1 50) + (f 51 100) -> (f 1 25) + (f 26 50) + (f 51 75) + (f 76 100) -> ... -> (f 1 1) + (f 2 2) + ... + (f 100 100)
と、多重再帰で分解していく。最後に、
f a b | a == b = a
で、
f 11 = 1 , f 2 2 = 2 , ... , f 100 100 = 100
と、変換する。後は、
1 + 2 + ... + 100
が計算される。

0275仕様書無しさん2014/04/15(火) 12:02:54.54
>>274
解説付きでわかりやすいけど、突然コート中に出てきたら死ぬる
お題変わったあとの告知をどうするか問題になりそう。

0276仕様書無しさん2014/04/15(火) 18:55:38.15
>>1の方針からして面白いコードが見られたらいいんだから
お題が変わった後でも書き込んでもらって全然かまわんと思うけど

というかちゃっちゃと次のお題決めようぜ

0277仕様書無しさん2014/04/15(火) 21:05:21.40
このスレでお題変えると収集つかなくなると思うから
一週間で一つの問題を解くスレを別途作るべきだと思う。うん。

0278仕様書無しさん2014/04/16(水) 20:54:15.03
レス単位とかどうよ
300レスくらいから問題変更
流石に乱立はまずいだろうし

さいころC++
int dice(void){
return
// 1
// 2
3
// 4
// 5
// 6
// 追加可能...
;
}

0279仕様書無しさん2014/04/17(木) 00:34:28.74
お題にのコードを投稿するときにアンカーでレス番付ければいいんじゃね?

>>278だったら

お題:>>262 サイコロ

みたいな

0280仕様書無しさん2014/04/17(木) 05:34:14.53
2ch なんだから好きにしたらいい。
混乱して困るなら Wiki などへ移動するのが合理的であり、ここではお題でもコードでも好きに投稿したらいい。
その上で 279 の提案は便利だと思う。

0281仕様書無しさん2014/04/17(木) 06:40:11.21
カルドセプトサーガのひどいサイコロ思い出した

0282仕様書無しさん2014/04/18(金) 00:55:30.51
お題 >>262 サイコロ
Ruby

def dice
 (Time.now.to_i%6).to_i
end

0283仕様書無しさん2014/04/18(金) 19:21:27.96
お題:さいころ>>262
C

int i;
printf("%d\n", i%6+1);

0284仕様書無しさん2014/04/19(土) 11:20:37.50
>>283
その発想はなかった

0285仕様書無しさん2014/04/19(土) 13:02:04.92
>>283
Visual C++でやったらコンパイルエラーになったぞw

0286仕様書無しさん2014/04/19(土) 13:52:00.70
そこら辺の領域をゴミごと拾って初期化せず使うからランダム(に見える)
忠実なコンパイラは通すが頭がいいコンパイラは初期化してないって怒る

0287仕様書無しさん2014/04/19(土) 15:12:12.80
お題
【Fizz Buzz】
自然数を順番に、
3で割り切れる場合はFizz、
5で割り切れる場合はBuzz、
両方で割り切れる場合はFizz Buzz、それ以外はその数値を出力していく。
なお区切り文字は「 」(半角スペース)



//例(C++)
#include <stdio.h>

int main(void)
{
int i;
for (i = 1; i <= 100; i++) {
if (i % 3 == 0 && i % 5 == 0) {
printf("FizzBuzz");
} else if (i % 3 == 0) {
printf("Fizz");
} else if (i % 5 == 0) {
printf("Buzz");
} else {
printf("%d", i);
}
printf(" ")
}
return 0;
}

0288仕様書無しさん2014/04/19(土) 15:45:49.02
>>287
プログラマーなら「FizzBuzz問題」解けるよな?
http://nozomi.2ch.net/test/read.cgi/prog/1209467166/
にけっこうヒドいのがあるぞ。

0289仕様書無しさん2014/04/19(土) 17:18:27.45
>>287
%と/を使わない方法でやってみた

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

0290仕様書無しさん2014/04/19(土) 17:19:12.95
>>289
スマン改行区切りになってた

0291仕様書無しさん2014/04/19(土) 17:54:11.21
>>287
perl

#!/usr/bin/perl -w
use strict;
print "1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz";

0292仕様書無しさん2014/04/19(土) 20:43:42.15
>>287
Fizz Buzz
>>291のお陰でいい感じの糞コードを思いついた

#include <stdio.h>

int main(void){
int i;

for( i = 0 ; i < 7 ; i++ ){
printf("%d %d Fizz %d Buzz Fizz %d %d Fizz Buzz %d Fizz %d %d FizzBuzz ",15*i+1,15*i+2,15*i+4,15*i+7,15*i+8,15*i+11,15*i+13,15*i+14);
}

return 0;
}

0293仕様書無しさん2014/04/20(日) 00:29:54.56
>>287
#include <stdio.h>
int main(){
for (int i = 1; i <= 100; ++i) {
printf("%4d", i);
if (i % 3 == 0)printf("\b\b\bFizz ");
if (i % 5 == 0)printf("\b\b\bBuzz ");
}
return 0;
}

0294仕様書無しさん2014/04/21(月) 17:26:54.72
Java

public class Sum {
public static void main(String arg[]){
/* 1-100までを足し算するプログラム。電卓では5050になった。
System.out.pringln("1−100まで足し算すると?");
System.out.pringln("5050");
}
}

0295仕様書無しさん2014/04/21(月) 22:46:50.97
>>294
プリングル?

0296仕様書無しさん2014/04/21(月) 23:15:09.17
>>294
コメントが閉じてないような

0297仕様書無しさん2014/04/22(火) 22:41:17.88
ちょっとまとめてみた

>>1   1から100の足し算結果を出力
>>228  素数探し
>>262  サイコロ(1〜6からランダムに出力)
>>287  FizzBuzz問題

こんなところかな。面白いコードが見たいぜ

0298仕様書無しさん2014/04/23(水) 00:01:10.84
>>297
LTGM!

0299仕様書無しさん2014/04/23(水) 00:02:23.66
>>297
LGTM!

0300仕様書無しさん2014/04/23(水) 21:31:36.87
>>297
じゃあお題 【数学関数】 も追加で
powでもroundでもsqrtでもlogでもなんでもいいんで見てみたい

//round関数の例:C言語
#include <stdio.h>

double round(double x,int digit){
if( digit == 0 )
return (int)(x+0.5);
else if( digit < 0 )
return round(x/10,digit+1)*10;
else
return round(x*10,digit-1)/10;
}

int main(void){
printf("%f\n",round(123.456,-2));
printf("%f\n",round(123.456,-1));
printf("%f\n",round(123.456,0));
printf("%f\n",round(123.456,1));
printf("%f\n",round(123.456,2));
return 0;
}

0301仕様書無しさん2014/04/23(水) 22:45:28.10
お題乱立もなんか分散して読みにくいのでは、
選択肢があるのはいいけど>>1が次のお題と決めた>>262-270で選ぶのがよさそうな

0302仕様書無しさん2014/04/24(木) 06:13:51.25
勘定系はないのか

0303仕様書無しさん2014/04/24(木) 21:19:24.53
>>300
お題:数学ライブラリ
おんなじ感じでPow関数作った
以下C#

using System;

class Program
{
static void Main()
{
Console.WriteLine(Pow(2,10));
Console.WriteLine(Pow(2,-2));
}

static double Pow(double x,int n)
{
if( n == 0 )
return 1;
else if( n > 0 )
return Pow(x,n-1)*x;
else
return Pow(x,n+1)/x;
}
}

0304仕様書無しさん2014/04/25(金) 22:52:52.70
>>1   1から100の足し算結果を出力
>>228  素数探し
>>262  サイコロ(1〜6からランダムに出力)
>>287  FizzBuzz問題
>>300  数学関数(round,pow,sqrt)

0305仕様書無しさん2014/04/25(金) 23:13:43.31
>>1   1から100の足し算結果を出力
>>228  素数探し
>>262  サイコロ(1〜6からランダムに出力)
>>287  FizzBuzz問題
>>300  数学関数(round,pow,sqrt)
>>312  自分探し

0306仕様書無しさん2014/04/26(土) 00:08:09.33
自分探し?

0307仕様書無しさん2014/04/26(土) 05:08:25.69
す、素数?

0308仕様書無しさん2014/04/26(土) 11:59:20.41
>>307
ゆとりここに極まれりだな。
もとかず、に決まってんだろ。

0309仕様書無しさん2014/04/26(土) 12:04:41.01
素敵な素数の素子

0310仕様書無しさん2014/04/26(土) 20:13:27.01
自分探し(BASIC)

10 CLS
20 PRINT "アナタ ノ ヤリタイコト ハ ナンデスカ?"
30 INPUT A$
40 PRINT "アナタ ハ " & A$ & "ヲ ココロザス スバラシイ ヒト デス。"

0311仕様書無しさん2014/04/26(土) 22:42:17.84
50 goto 20

0312仕様書無しさん2014/04/26(土) 22:44:55.25
【自分探し】
自分を探すプログラム

例(C#)
class Program
{
static void Main(string[] args)
{
System.Console.WriteLine("私は、{0}に存在します。",System.Reflection.Assembly.GetEntryAssembly().Location);
}
}

0313仕様書無しさん2014/04/27(日) 10:05:25.31
いや、自分探しってのは、本当の私はこんなんじゃない、どこかに天職があるはず、みたいなのだろ。
>310 の 40 行目を
40 PRINT "モット ジブンラシイ イキカタ ガ アリマス。"
にする感じ。
A$ を蒸してるのは仕様。

0314仕様書無しさん2014/04/27(日) 11:24:57.75
>>1
char _1to100_ [] = { '0', '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'}
char i;
long sum;


for ( i = 1 ; i =< 100 ; i = i + 1 )
{
sum = sum + _1to100_[ i ];
}

/* 暫定対策、あとで綺麗にする */
sum = sum - _1to100_[ 0 ] * 100;

0315仕様書無しさん2014/04/27(日) 23:48:19.10
>>312
別プログラムからMainが呼ばれた時に自分じゃなくなるよ

0316仕様書無しさん2014/04/28(月) 09:14:55.68
人に言われて動いていると自分が自分でなくなるというわけか。
考えさせられるなw

0317仕様書無しさん2014/04/29(火) 04:02:45.59
>>316 プログラムは美しいな

0318仕様書無しさん2014/05/01(木) 17:54:22.79
>my
not found.

>this
not found.

>self
not found.

0319仕様書無しさん2014/05/11(日) 08:04:17.57
>>1   1から100の足し算結果を出力

COBOLで。

01 I PIC 9(100).
01 J PIC 9(100).

MOVE ZERO TO J.
PERFORM VARYING FROM 1 BY 1 UNTIL I > 100
COMPUTE J = J + I
END-PERFORM.
DISPLAY J.

0320仕様書無しさん2014/05/11(日) 13:54:27.64
スレタイ「1-100 の足し算を一番ひどいコードで書いた奴が優勝」

>>319
優勝 !!

0321仕様書無しさん2014/05/11(日) 19:35:26.96
>>319
IDENTIFICATION DIVISION.
から書いてたら優勝!

何気に >>2 はコンパイル済みなら激速じゃね?

03223192014/05/11(日) 19:45:46.75
>>320-321
レス300越えて、誰もCOBOLで書いてないからびっくりしました。
完全に優勝狙ってました(^^)

0323仕様書無しさん2014/05/11(日) 20:13:22.36
コボルなら足し算はADD使ってほしいな

0324仕様書無しさん2014/05/11(日) 23:32:17.75
&HC000から
AF,21,05,C0,C6,01,34,F5,7E,FE,64,28,12,C0,F1,C3,04,C0,F1,C9

でAレジスタの数字がおかしいと頭を悩ませたりするw

0325仕様書無しさん2014/05/12(月) 00:06:23.66
>>324
28 って ブランチだよね?
CA じゃないとまずくない?

0326仕様書無しさん2014/05/12(月) 19:56:16.16
>>325
oh...
久々にニーモニック表見たからJPとJR見間違えたよ…。

0327仕様書無しさん2014/05/13(火) 02:16:11.75
日本と国鉄くらい違うじゃないか...

0328仕様書無しさん2014/05/16(金) 10:30:30.99

0329仕様書無しさん2014/05/20(火) 18:14:54.49
IDENTIFICATION DIVISION.
PROGRAM-ID. SOH001.

ENVIRONMENT DIVISION.

DATA DIVISION.
WORKING-STORAGE SECTION.
77 KAZU PIC 999 VALUE 100.
77 KOTAE PIC 9999 VALUE 0.

PROCEDURE DIVISION.
CALL "KEISAN"
STOP RUN.

ENTRY "KEISAN"
IF KAZU > 0
ADD KAZU TO KOTAE
SUBTRACT 1 FROM KAZU
CALL "KEISAN"
ELSE
DISPLAY KOTAE
END-IF
EXIT PROGRAM

二番煎じ

0330仕様書無しさん2014/05/22(木) 02:05:15.24
>>84
こういう誰かに丸投げするタイプの大好き

0331仕様書無しさん2014/06/04(水) 15:41:40.62
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);

}

}

03322014/06/04(水) 17:01:36.84
org 0
ld hl,0
ld de,0
ld b,100
loop:
inc de
add hl,de
djnz loop
jp (hl)

03332014/06/04(水) 17:10:51.73
>>332
言語名忘れてた。
z80

0334仕様書無しさん2014/06/04(水) 17:28:56.01
>>331
public class GaussSum {

public static void main(String[] args) {
// ワイならこう考えるやで
int sum = 0;
for (int i = 1; i <= 100; i++) {
//おっ、2で割るの忘れたな、修正するやで
sum += 101 / 2;
}
System.out.println(sum);

}

}

0335仕様書無しさん2014/06/04(水) 17:29:44.34
5000?

0336仕様書無しさん2014/06/04(水) 17:39:01.25
>>335

普通に書いたらいいコードになっちまうからな

03372014/06/04(水) 19:05:45.14
>>336
Javaって、
int sum で、
sum += 101 / 2;
ってやると、50.5 が加算されるの?

0338仕様書無しさん2014/06/04(水) 21:18:34.87
>>336

されない

0339仕様書無しさん2014/06/05(木) 00:33:17.65
糞コテはさっさと巣へ帰れ

03402014/06/05(木) 00:38:44.71
>>339
ね、>334 って、おまいが書いたの?w

0341仕様書無しさん2014/06/05(木) 07:23:08.22
「こんな簡単な修正、試さなくても直ってるに決まってるじゃん」
未熟なプログラマのあるある

0342仕様書無しさん2014/06/05(木) 08:38:48.03
Java


public class HundredSum {

public static void main(String[] args) {
int sum = -1;
int ans = 0;

//1から100の和が出るまでがんばる
while(sum != ans){
ans = 0;
//正解の生成
for(int i = 1; i <= 100;i++){
ans += i;
}

sum = (int) (Math.random() * 10000);

}

System.out.println(sum);

}

}

0343仕様書無しさん2014/06/05(木) 14:44:01.13
int sum(){
 int sum=0,num=100;
 switch(num){
  case 100:
   sum+=100;
  case 99:
   sum+=99;
(中略)
  case 1:
   sum+=1;
  default:
   break;
 }
 return sum;
}

どや

0344仕様書無しさん2014/06/05(木) 18:22:20.96
>>343
0でreturnして終了じゃんそれ

0345仕様書無しさん2014/06/05(木) 18:35:04.59
>>344
えっ?
きちんと5050がreturnされるはずだけど
変数名似てて見辛かったのかな

0346仕様書無しさん2014/06/05(木) 18:38:46.17
だまされた、break抜きか...orz

0347仕様書無しさん2014/06/05(木) 21:11:01.18
いや、コンパイルエラーだよ

03482014/06/06(金) 01:35:02.12
なんだか、みんな結果を表示したり戻したりするだけだよね〜

優勝は俺かなぁw

0349仕様書無しさん2014/06/06(金) 02:56:55.01
糞コテはさっさと巣へ帰れ

0350仕様書無しさん2014/06/07(土) 00:18:55.50
#perl

open $fh q{perl -e '$i++ for(1..100);print $i' |};
print while(<$fh>);
close $fh;
exit;

0351仕様書無しさん2014/06/07(土) 01:21:10.26
>>349
お前優しいな。
だが荒らしに構う奴も荒らしだ。

0352仕様書無しさん2014/06/10(火) 22:04:59.07
C#

private static IEnumerable<int> Sum()
{
 int r = 0, i = 0;
 while (true) yield return (r = (r + i++));
}

とやっといて

var r = Sum().ElementAt(100);

0353仕様書無しさん2014/06/21(土) 06:01:45.94
お題:>>1 1から100の足し算結果(を出力)
言語: sed ( and Bourne shell )

時間を置いてローマ数字でなく、普通のインド・アラビア数字を受け付けるものを出します。
1:-100 で無いのは、故意です。'"${1-100}"'を変えれば、sed だけで(何かダミー入力が必要ですが一応)動きます。

#!/bin/sh
echo '' | sed -re '
 s/.*//
 
 : loop
 s/^/I/
 H
 /I{'"${1-100}"'}/!b loop
 
 g
 s/\n//g
 
 s/I{10}/X/g
 s/X{10}/C/g
 s/C{10}/M/g
 s/I{5}/V/
 s/X{5}/L/
 s/C{5}/D/
 q
'

0354仕様書無しさん2014/06/21(土) 07:42:43.41
お題:>>1 1から100の足し算結果を出力
言語: sed ( and Bourne shell )

数字からIに変換したり、戻したりするものは、Simon Richte さんのコードを使っています。
計算部分は、カウントダウンにしただけでほとんど変わりません。
見やすさ優先で、-r を付けています。適切に書き換えて下さい。
途中経過を sed.log に書き出すようにしています。

#!/bin/sh
# num to I and I to num: http://unix.stackexchange.com/questions/36949/ the answer of Simon Richte
sed -re '
 /[^0-9]/d
 
 s/[0-9]/<&/g
 s/0//g; s/1/I/g; s/2/II/g; s/3/III/g; s/4/IIII/g; s/5/IIIII/g; s/6/IIIIII/g; s/7/IIIIIII/g; s/8/IIIIIIII/g; s/9/IIIIIIIII/g

0355仕様書無しさん2014/06/21(土) 07:43:58.87
 : tens
 w sed.log
 s/I</<IIIIIIIIII/g
 t tens
 s/<//g
 
 : CountLoop
 H
 s/I//
 /I/b CountLoop
 
 x
 s/\n//g
 
 : ItoNumLoop
 w sed.log
 s/I{10}/X/g
 s/X([0-9]*)$/X0\1/
 s/I{9}/9/; s/I{8}/8/; s/I{7}/7/; s/I{6}/6/; s/I{5}/5/; s/I{4}/4/; s/III/3/; s/II/2/; s/I/1/
 s/X/I/g
 t ItoNumLoop
'

0356仕様書無しさん2014/06/23(月) 05:06:31.69
#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関数を使う*/
} /*波カッコ*/

0357仕様書無しさん2014/06/25(水) 14:33:05.54
お題:>>1 1から100の足し算結果を出力
言語:C

# /*ただただぐちゃぐちゃさを
*/ include /*ついきゅうしたひどい
こーどっす */ <stdio.h>
main/*GCCでためした*/(){int/*
せいすう*/s=0,
i=0;L:/*くりかえしはもちろんGOTO*/
s+=/*たしていく*/i++;
if(/*100かいまではるうぷ*/i<
101)goto L;
printf/*ひょうじ*/("%d\n"/*すうじ
*/,s);}

0358仕様書無しさん2014/06/25(水) 21:13:45.74
お題:>>1 1から100の足し算結果を出力
言語:C
ぐちゃぐちゃを止めて、AAにしてみました。

#include/*   ,,,;' '" '' ゛''" ゛' ';;,, */<stdio.h>
/*        (rヽ,;''"""''゛゛゛'';, ノr)
*/main(){/* .,;'゛ i _  、_ iヽ゛';,    お前それサバンナでも同じ事言えんの?
*/int s=0,/* ,;'" ''| ヽ・〉 〈・ノ |゙゛ `';,
*/i=0;L:/*  .,;'' "|   ▼   |゙゛ `';,
*/s+=i++;/* .,;''  ヽ_人_ /  ,;'_
*/if(i</*   /シ、  ヽ⌒⌒ /   リ \
*/101)/* |   "r,, `"'''゙´  ,,ミ゛   |
*/goto/* |      リ、    ,リ    |
*/L;/*.  .|   i   ゛r、ノ,,r" i   _|
*/printf/* |   `ー――----┴ ⌒´ )
*/(/*   (ヽ  ______ ,, _´)
       (_⌒ ______ ,, ィ
*/"%d\n"/*  丁           |
*/,s);}/*     |           |
*/

0359仕様書無しさん2014/06/25(水) 22:02:11.52
>>358
二番煎じ
発想が貧困だよ

0360仕様書無しさん2014/06/25(水) 22:23:53.37
10 A$(0)="0"
20 A$(1)="0"
30 '
40 FOR I=1 TO 10
50 FOR J=0 TO 9
60 A$(0)=STR$(J)
70 ANS=ANS+VAL(A$(1)+A$(0))
80 NEXT
90 A$(1)=STR$(I)
100 NEXT
110 ANS=ANS+100
120 PRINT ANS

もっと酷くも書ける

03613602014/06/25(水) 22:26:56.87
BASICね

0362仕様書無しさん2014/06/26(木) 07:47:04.75
>>359
おw レスもらえるだけでうれしいw
そ、そか ort
AAだめか

0363仕様書無しさん2014/06/26(木) 13:07:42.32
/* このソースはMSゴ12ptで閲覧すること */
って入ってない時点でダメぽ

0364仕様書無しさん2014/06/26(木) 13:08:16.05
Pゴだっけ…?

0365仕様書無しさん2014/06/27(金) 13:25:30.94
>>363 おおw またレスがw うれしいな
しかし、それはいくら何でも初心者に媚び過ぎじゃあないの?
レスの付け方と同じくAAの見方は常識で一々書か......って、
オイッ!!(*`Д´)っ))ダッケ…? ジャナイダロ! シッカリシロヨ

ってか、か、書いときゃ良かったかな?MSPゴシック12pt
mac linux な人は IPA モナー Pゴシックとか
iPhone Android は web font を利用したブックマークレットとか
使えるらしいよググッってみてね えへへへへ(〃⌒▽⌒)ゞ

ちなみに AA は自分で描いたものじゃあ無いです
そんな技術は持って無い

0366仕様書無しさん2014/07/02(水) 12:08:23.77
くっさ

0367仕様書無しさん2014/07/02(水) 18:43:55.10
>>365
自分語りはいいから駄コード書けよ

0368仕様書無しさん2014/07/02(水) 21:50:46.42
1-100の足し算
引き算なのに足し算
眠れなくなる

0369仕様書無しさん2014/07/03(木) 00:14:25.89
+/1+i.100

0370仕様書無しさん2014/07/08(火) 23:56:08.67
;;; -*- emacs-lisp -*-

(with-temp-buffer
(mapcar (lambda (n) (insert-char ? n)) (number-sequence 1 100))
(- (point) 1))

0371仕様書無しさん2014/07/23(水) 09:15:56.34
def iti
return 1
end

def ni
return 2
end

……

def calc
sum = iti + ni + ...
end

0372仕様書無しさん2014/10/30(木) 05:32:34.36
system(”calc.exe”)
sendkey(”1”)

0373仕様書無しさん2015/01/31(土) 22:02:37.56
引き算だけ使って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;
  }
 }
}

古いマシンほど早く答えが出るのがひどい。

0374仕様書無しさん2015/02/03(火) 19:37:25.85
>>373
関数の方が定義されていなくて、C99以降では文法違反の所もひどい。

0375仕様書無しさん2015/02/25(水) 18:23:17.86
;68Kアセンブリ言語 貴方はきっと書き直したくなる
MOVE.L #UB,$1C
CLR.B D0
CLR.B D1
MOVE.B #100,D2
L1:
ADD.B D2,D0
TRAPV
SUB.B #1,D2
CMP.B #0,D2
BNE L1
MOVE.B D0,KOTAE
MOVE.B D1,KOTAE+1
STOP
UB:
ADD.B #1,D1
RTE
ANS: DS.W 1

03761/22015/03/22(日) 15:46:22.01
//お題:1-100の足し算
//言語:C
//まともに動くかわからん
#include <stdio.h>
int main(void){
int i=0;
int j=0;
int k=1;
int l=1;
char zyuu[10]={1,2,3,4,5,6,7,8,9,10};
char nizyuu[10]={11,12,13,14,15,16,17,18,19,20};
char sannzyuu[10]={21,22,23,24,25,26,27,28,29,30};
char yunnzyuu[10]={31,32,33,34,35,36,37,38,39,40};
char gozyuu[10]={41,42,43,44,45,46,47,48,49,50};
char rokuzyuu[10]={51,52,53,54,55,56,57,58,59,60};
char nanazyuu[10]={61,62,63,64,65,66,67,68,69,70};
char hatizyuu[10]={71,72,73,74,75,76,77,78,79,80};
char kyuuzyuu[10]={81,82,83,84,85,86,87,88,89,90};
char hyaku[10]={91,92,93,94,95,96,97,98,99,100};

03772/22015/03/22(日) 15:46:49.71
switch (l){
case zyuu[k]:
i=i+zyuu[j];
j=j+k;
l=l+k;
case zyuu[k+k]:
i=i+zyuu[j];
j=j+k;
l=l+k;
case zyuu[k+k+k]:
//(中略)
}
j=k-k;
switch(l){
case nizyuu[k]:
i=i+nizyuu[j];
j=j+k;
l=l+k;
//(中略)
}
//(中略)
switch(l){
//(中略)
}
printf("%d\n",i);
return k-k;
}

0378仕様書無しさん2015/05/04(月) 18:38:05.91
>>158
' Excel VBA

Sub sum(startValue As Integer, endValue As Integer)
Dim wb As Workbook
Set wb = ThisWorkbook
Dim ws As Worksheet
Set ws = wb.Worksheets("Sheet1")

ws.Columns(1).Clear
Dim i As Integer
For i = startValue To endValue
ws.Cells(i - startValue + 1, 1).Value = i
Next i
ws.Cells(i - startValue + 1, 1).Formula = "=SUM(A1:A" & endValue - startValue + 1 & ")"

MsgBox "答えは A" & endValue - startValue + 2 & " を見て!"
End Sub

0379仕様書無しさん2015/06/08(月) 23:37:59.55
// Java だいたいの場合、だいたい合っている。

int innerCount = 0; // ランダムに取った点のうち y = x + 0.5 と x軸の間にある点の数
double answer = 0; // 推定値

// 1,000,000 回ループしてランダムな点を 0 <= x <= 100 、0 <= y <= 200 で生成
for(int i = 0 ; i < 1000000 ; i++) {
double dx = Math.random() * 100;
double dy = Math.random() * 200;

// ランダムに取った点が y = x + 0.5 と x軸の間にあればカウントする。
if(dy <= dx + 0.5) {
innerCount++;
}
}

// innerCount / 1000000 = answer / (100 * 200) より推定
answer = 0.02 * innerCount;

// 1 〜 100 の合計の推定値を出力
System.out.println(String.valueOf(answer));

0380仕様書無しさん2015/06/13(土) 12:09:26.21
msgbox "1-100は、-99"

0381仕様書無しさん2015/06/13(土) 12:11:19.74
そこは、
msgbox "!1ー100は、足し算ではありません"
だろ。

0382仕様書無しさん2015/06/17(水) 04:57:10.78
@rem Windowsバッチファイル callの代わりにstart使うと実行結果がより酷くなる(試すな危険)
@echo off
setlocal
if "%1"=="" goto start
if "%1"=="1" exit /b 1
if not "%PROGRAM%"=="IS_RUNNING" goto usage
set /a tmp=%1-1
call %0 %tmp%
set /a tmp=%1+%ERRORLEVEL%
exit /b %tmp%

:start
set PROGRAM=IS_RUNNING
call %0 100
echo 1-100を足し合わせた数 = %ERRORLEVEL%
setlocal
exit /b 0

:usage
echo 引数を指定しないで起動してください.
endlocal
exit /b -1

0383仕様書無しさん2015/07/07(火) 17:07:34.85
// C++ (as better C)
「オーバーフローのチェックをしました!(ドヤ」
http://codepad.org/ywkQTLM1

0384仕様書無しさん2015/07/16(木) 04:08:15.20
この野郎……深夜に大声で笑わせやがって……

0385仕様書無しさん2015/08/07(金) 16:43:46.66
>>1
1-100は引き算だろ

0386仕様書無しさん2015/10/22(木) 22:30:47.29
<phq
$a=1+100
$b=100/2
echo $a*$b;
?>

0387仕様書無しさん2016/05/04(水) 11:19:18.32
匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrent(Covenant)が活発な情報交換・交流コミュニティでオープンソース開発されています(プログラマー募集中)

言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?

Covenantの作者(Lyrise氏)がそういう人と話したいそうなので、よろしければツイートお願いします<(_ _)>
https://twitter.com/Lyrise_al

ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできない情報発信好きアスペルガーw


通話料が激安になるブラステル(050 Free)で、かなり遅延や音声途切れが発生する方は、以下の設定を試してください
○ Wifiと3Gのコーデックは2つ(GSM、G.711u-Law)とも有効にしておく
○ エコーキャンセルをOFF(チェックを外す)にする
○ あとの設定はデフォルトのまま
http://blog.livedoor.jp/gnunobian/archives/52013458.html
上記の設定でも音質が悪い方は、wolfsonの高音質チップを搭載した機種(Galaxy 初代S、S3、S6、 AQUOSPhone ZETA SH-06E、AQUOSPhone si SH-07E、AQUOSPhone Xx 206SH、 Galaxy Note II)に買い換えて下さい。

500円以下の格安SIMで使えて登録・月額無料、IPベース発信なら携帯へは5.5円/30秒、固定へは8円/3分(月額無料でこの価格はすごい!)
http://blog.jikoman.jp/2015/11/brastel-050-free.html

あと、050Freeの起動もしくは発着信が2週間以上ないとプッシュサーバー期限切れでプッシュ着信が出来なくなるので、Llama Location Profilesで1週間に一度050Freeを自動起動するように設定すると、2週間以上経過してもプッシュ着信できます


最後にロケットストーブの焚き口へ超省電力なDC扇風機で風を送ると、横引き煙突が12m以上あっても煙が逆流してきません。
よって、横引き煙突で超高効率な熱回収ができるので薪が少量で済みます
あと、燃焼室の大きさは『無煙竹ボイラMBG150』で検索して参考にして下さい
http://i.imgur.com/iVuglg9.jpg 
http://jp.misumi-ec.com/material/mech/KRT1/PHOTO/KRT1_221004926837.jpg
http://livedoor.blogimg.jp/zoukibayashinokai/imgs/2/a/2a3c6dc0.jpg

0388仕様書無しさん2016/05/16(月) 22:15:19.53
C
///////////////////////////

int answer;

printf("1 + 2 + 3 +・・・+ 100 = ? \n答え→");
scanf("%d",answer);

return answer;

0389仕様書無しさん2016/05/20(金) 16:17:36.81
//C++11
//高速化の工夫を何箇所かしました!!
#include <thread>
#include <iostream>
using namespace std;
int s = 0;
//iの分sを加算
//s++から++sにすることで高速化
void add(int i){ while(i--) ++s; }
int main(){
for(int i=0; i < 100; ++i){
thread t(add, i);
t.detach(); //デタッチすることで並列処理
}
//Cで扱える形式に変換
printf("%s\n", to_string(s).c_str());
abort(); //きちんと終了する
}

0390仕様書無しさん2016/05/22(日) 11:40:00.54
C

#include<stdio.h>
int main(){printf("5050");}

0391仕様書無しさん2016/05/28(土) 13:33:47.21
>>383
INT_MAX や、CHAR_MAX って、標準で定義されている定数なの?

0392仕様書無しさん2016/05/28(土) 23:17:28.64
>>388
落ちそう

0393仕様書無しさん2016/06/16(木) 18:27:06.32
system.out.print(googleSearch("1から100までの足し算 答"));

0394仕様書無しさん2016/06/16(木) 21:14:10.14
#include <stdio.h>
for(i=1;i<=100;i++){
for(j=1;j<=I;j++){
printf("1");
}
}

./a.out | wc

0395仕様書無しさん2016/06/26(日) 22:27:12.18
5050

0396仕様書無しさん2016/07/04(月) 17:16:09.91
/* Digital Research PL/I-80 for CP/M */
HOGE : PROCEDURE OPTIONS (MAIN);
DECLARE HAGE FIXED DECIMAL (3);
DECLARE HIGE FIXED DECIMAL (4) STATIC INITIAL(0);
DECLARE MAGE FILE;
OPEN FILE(MAGE) STREAM OUTPUT TITLE('HOGE.LOG');
DO HAGE=1 TO 100;
HIGE = HIGE + HAGE;
PUT FILE(MAGE) EDIT(HAGE, HIGE) (R(SSK));
END;
PUT LIST('YOU MUST CHECK A LOGFILE.');
CLOSE FILE(MAGE);
STOP;
SSK: FORMAT(SKIP, P'**9', X(1), P'***9'); /* SSK := 'Sho-Shi-Khi' */
END HOGE;

0397仕様書無しさん2016/09/14(水) 20:13:34.52
手元にコンパイラないので誤字あるかも...
int hoge(int c int a)
{
if (c != 100)
{
hoge(c+1, a);
}
return a;
}
void main()
{
int ans;
ans = hoge(1, 0);
}

03983972016/09/14(水) 20:19:31.00
答え足すの忘れてた、まさにクソコードだったw
int hoge(int c int a)
{
a+=c;
if (c != 100)
{
hoge(c+1, a);
}
return a;
}
void main()
{
int ans;
ans = hoge(1, 0);
}

0399仕様書無しさん2016/09/14(水) 22:00:22.19
#!/usr/sbin/octave
sum(1:100)

0400仕様書無しさん2016/09/28(水) 17:10:04.05
>>1
そんなの↓これに決まってんじゃんw

int sum = 0;
sum = sum + 1;
sum = sum + 2;
(略)
sum = sum + 100;

0401仕様書無しさん2016/09/30(金) 01:07:53.12
Dim sum As Variant
sum = InputBox("1-100の足し算の答えを入力してください")
MsgBox("1-100の足し算の計算結果は" & Str(sum) & "です")

0402仕様書無しさん2016/09/30(金) 01:39:30.90
>>400
>>2の二番煎じって感じがする。

0403仕様書無しさん2016/09/30(金) 02:19:22.04
既出だよん >>91

0404仕様書無しさん2016/09/30(金) 21:20:32.02
ruby

require "base64"
S1 = "laGDWNz1VB0TTiTo2JknT="
S2 = "WhaJQ9URTRdtNBMlSlclP0"
S3 = "QmFzZTY0OjpkZWNvZGU2NChTMi5lYWNoX2NoYXIuem"
S4 = "lwKFMxLmVhY2hfY2hhcikuZmxhdHRlbiAqICcnKQ=="
S5 = "QmFzZTY0OjpkZWNvZGU2NChTMyArIFM0KQ=="
S6 = proc{|x|(eval((eval Base64::decode64 x).to_s))}
sum = ([S6]*2).reduce(S5){|r,x|x.call(r)}

0405仕様書無しさん2016/09/30(金) 22:17:59.00
>>383
これすき

0406仕様書無しさん2016/09/30(金) 23:30:27.15
int sum = 0;

sum = 1; sum = 1 + 2; sum = 3 + 3; sum = 6 + 4; sum = 10 + 5;
sum = 15 + 6; sum = 21 + 7; sum = 28 + 8; sum = 36 + 9; sum = 45 + 10;
sum = 55 + 11; sum = 66 + 12; sum = 78 + 13; sum = 91 + 14; sum = 105 + 15;
sum =

0407仕様書無しさん2016/10/01(土) 00:10:03.69
double sum = 0.0;
for (double i = 0.0; i < 100.0; i++) {
sum += i;
}
printf("%d\n", sum);

0408仕様書無しさん2016/10/02(日) 01:25:30.55
俺が優勝か

0409仕様書無しさん2016/10/19(水) 04:11:14.68
MSX-BASIC(8K RAM)
ひらがなカタカナ記号はキーボードからMSX専用半角文字で入力(コピペだと多分ダメ)
16K以上な機種は&HE018の代わりに&H8018で動くかも

1 DEFUSR=&HE018:A=USR(0)
2 REMなユナゆッO_W>dGx◆_yぇWx=G ゆ##s#rむチムちノ
3 PRINTA

0410仕様書無しさん2016/10/19(水) 14:58:11.35
auto goukei = 0ULL;
for (auto suuji = 1ULL; suuji <= 100ULL; ) {
auto goukei_ichijiteki = goukei;
auto suuji_ichijiteki = suuji;
goukei = goukei_ichijiteki + suuji_ichijiteki;
suuji = suuji_ichijiteki + 1ULL;
}

0411仕様書無しさん2016/10/19(水) 19:19:10.37
最適化次第で動く
// C++
struct sth { int get() const { return 5050; } };
void func(const sth* p)
{
__int n = p->get();
__if (!p) { return; }
__std::printf("%d", n);
}
int main()
{
__func(nullptr);
}

0412仕様書無しさん2016/10/19(水) 21:43:34.09
VBScript + Windows電卓

With WScript.CreateObject("WScript.Shell")
&nbsp; &nbsp; .Run "Calc.exe"
&nbsp; &nbsp; WScript.Sleep 1000
&nbsp; &nbsp; .SendKeys "{+}1"
&nbsp; &nbsp; For counter = 1 To 100
&nbsp; &nbsp; &nbsp; &nbsp; .SendKeys "~^P"
&nbsp; &nbsp; &nbsp; &nbsp; WScript.Sleep 50
&nbsp; &nbsp; Next
&nbsp; &nbsp; .SendKeys "^R"
End With

0413仕様書無しさん2016/11/06(日) 19:24:20.00
vbs
 ってかExcel二番煎じ

Rem

0414仕様書無しさん2016/11/06(日) 19:31:38.87
あれ?2ちゃんでもコメントアウト(無視)される?w コメント消してみた

"ichi_kara_hyaku_made_attoiumani_tasizan_suruyo.vbs"

Dim ekuseru
Call ekuseru_wo_shutoku(ekuseru)
Call shiito_wo_tsuika(ekuseru)
MsgBox "result:" & ekuseru.Worksheets(100).Range("A2").Value, vbInformation
Set ekuseru = Nothing

Private Sub ekuseru_wo_shutoku(ByRef ekuseru)
Set ekuseru = CreateObject("Excel.Application").Workbooks.Add
ekuseru.Application.Visible = True
End Sub

Private Sub shiito_wo_tsuika(ByRef ekuseru)
Dim shiitosuu, motono_siitosuu
Do While shiitosuu < 100
shiitosuu = shiitosuu + 1
motono_siitosuu = ekuseru.Worksheets.Count
If motono_siitosuu < shiitosuu Then ekuseru.Worksheets.Add ,ekuseru.Worksheets(motono_siitosuu)
ekuseru.Worksheets(shiitosuu).Name = shiitosuu
ekuseru.Worksheets(shiitosuu).Range("A1").Value = shiitosuu
ekuseru.Worksheets(shiitosuu).Range("A2").FormulaR1C1 = suusiki_wo_kaesu(shiitosuu)
Loop
End Sub

Private Function suusiki_wo_kaesu(ByVal shiitosuu)
If shiitosuu = 1 Then suusiki_wo_kaesu = "=R[-1]C"
If shiitosuu > 1 Then suusiki_wo_kaesu = "="&(shiitosuu-1)&"!RC+R[-1]C"
End Function

0415仕様書無しさん2016/11/10(木) 21:35:48.58
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, ",", "+"))

0416仕様書無しさん2017/01/31(火) 19:17:10.73
保守

0417仕様書無しさん2017/01/31(火) 19:27:20.88
ここはプログラマーの社交場
ニートや中学生にはここに来る資格はありませんので
おとなしくじっプラにおかえりください
あしからず

0418仕様書無しさん2017/03/17(金) 03:17:18.76
>>368
2の補数の足し算のコード書いてください。

0419仕様書無しさん2017/03/19(日) 14:37:28.79
Hashtable num;
int sum=0;
int c=0;
while(c<100)
{
int no = Randon.Range(1,101);
if(num[no]) continue;
num[no]=1;
sum += no;
c++;
}
Debug.Log("sum="+sum);

新着レスの表示
レスを投稿する