2ちゃんねる★スマホ版★■掲示板に戻る■全部1-最新50

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

1 :
2014/03/17(月) 01:57:59.72
バッドノウハウ共有。
言語名は必須。
とりあえず何も考えずに。

C#
int sum = 0;
for(int i = 1; i <= 100; ++i)
{
  sum += i;
}
2 :
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;
3 :
2014/03/17(月) 02:13:56.25
>>2を超えるコードが見たい
4 :
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++;
}
}
5 :
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はスマートすぎた。ごめん。
6 :
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));
}
7 :
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;
8 :
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();
9 :
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;
10 :
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);
}
11 :
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;
}
12 :
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;
}
13 :
2014/03/17(月) 11:55:25.72
Pharo(Smalltalk)

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

一時変数を使わなかった自分を褒めてあげたい
14 :
2014/03/17(月) 11:57:50.15
マ板で一番恐ろしいスレが誕生したのでは?
15 :
2014/03/17(月) 11:58:00.38
int s=5050; //電卓で計算済み
16 :
仕様書無しさん
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は将来大きくされる可能性があるなら
将来原因不明のバグを発生させる最良の方法
17 :
2014/03/17(月) 12:04:29.15
>>6のコードがなんとなく好き
18 :
仕様書無しさん
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
}
スレタイガン無視ですまん
手元のソースがこれしかなかった
すまほで書き写してる都合間違い多いけど簡便
19 :
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 )); // なぜか答えが合わない
20 :
2014/03/17(月) 21:46:22.47
#include <stdio.h>
void main(){

}
21 :
2014/03/17(月) 21:50:16.55
ミスったC++

int result;
std::cout << "答えを入力して下さい:";
std::cin >> result;
std::cout << std::endl << "答えは" << result << "です" << std::endl;
22 :
2014/03/17(月) 22:45:11.27
def SumFromTo(from,to):
return 5050
23 :
2014/03/17(月) 22:51:58.50
プロならテストケースも書くだろ

assertEquals(5050, 5050);
24 :
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;ってどうよ...
25 :
仕様書無しさん
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)
26 :
2014/03/18(火) 00:27:57.60
>>23
テスト駆動開発だ!
27 :
2014/03/18(火) 00:31:41.42
>>25のコードがよく見ると最後にprintでマジックナンバー出力してて吹く
28 :
2014/03/18(火) 00:35:24.19
VBで作ってみたよ。

Sub main()
a = InputBox("1から100まで足した答えを入力してください")
MsgBox a
End Sub
29 :
2014/03/18(火) 15:54:42.70
数学の公式を使う

int sum = (1+100)*(100/2);
30 :
2014/03/18(火) 16:41:03.35
機械語ではよ
31 :
2014/03/18(火) 17:56:12.69
++++[>+++++++++++++<-]>+.<
>-----.<
>+++++.<
>-----.<
32 :
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)); // 確率的にこれくらい
};
33 :
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 ); // コンパイラさん、がんばれ。
}
34 :
仕様書無しさん
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;
}
35 :
34
2014/03/18(火) 20:36:14.51
&がエスケープされて&amp;になっとる・・・
36 :
2014/03/18(火) 21:15:57.07
1引く100の足し算???
37 :
仕様書無しさん
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;
{
38 :
2014/03/18(火) 21:46:04.56
>>36
マなら>>1のコードを見て語れ
39 :
2014/03/18(火) 21:48:55.87
>>32
なんか正しくなりそうwww
40 :
2014/03/18(火) 21:56:57.87
ribyistなら最低さがわかる

sum=0
count=1
while count<=100 {
 sum += count
 coumt += 1
}
41 :
2014/03/18(火) 22:29:23.03
駄スレかと思って開いたらすごくおもしろいスレだな
毎週違う問題のこんなコードを見てみたい
誰かWikiつくったりしてやらないかな…
42 :
2014/03/18(火) 22:31:26.37
>>39
100回実行してみた
37回5050が出力されたが
63回違う答えが出た
でも一番離れている数字も5047
結構正確
43 :
仕様書無しさん
2014/03/18(火) 23:15:10.64
>>33
メタ関数ていうんだっけ。俺にはわからん
44 :
仕様書無しさん
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;
}
正攻法。いろんな意味でアレ
規制の都合で改行控えめです
45 :
2014/03/18(火) 23:50:20.94
>>15が好きだわw
46 :
仕様書無しさん
2014/03/19(水) 00:55:22.68
return 5050;
47 :
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
48 :
2014/03/19(水) 02:04:28.49
結構書き込んでるんだな
49 :
2014/03/19(水) 02:06:35.39
bashならもっとスマートに書こうぜ

for i in `seq 1 100`; do yes | head -n $i; done | wc -l
50 :
2014/03/19(水) 10:46:35.07
yesの出力を1〜100行切り取って行数数えるか、なるほど
51 :
2014/03/19(水) 12:42:22.14
黒魔術
52 :
2014/03/19(水) 12:44:43.59
>>44
おまえのような正攻法がいるか
53 :
2014/03/19(水) 13:55:17.90
;; emacs-lisp
(apply #'+
(let (s)
(dotimes (i 100 s) (setq s (cons (- 100 i) s)))))
54 :
2014/03/19(水) 16:48:57.46
i=rand(); //たまに当たる
55 :
2014/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",
56 :
2014/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 );
57 :
2014/03/19(水) 21:21:25.96
+ TWENTY + TWENTY ONE
     ↑
コンパイル通らないと思われ。
58 :
2014/03/19(水) 21:24:25.51
>>57
チェック済よん。
展開すると
... + 20 + + 20 + 1 ...
になるんだけど、単項演算子++でなくて二項演算子+と単項演算子+に解釈されるんだな。
つまり
... + 20 + (+20) + 1 ...
ってわけだな。
59 :
2014/03/19(水) 21:31:26.08
どのコードも純粋にすごい
60 :
2014/03/20(木) 00:27:17.78
>>58
バッドノウハウ見に来たのにCのマクロテクニックを見れた
61 :
2014/03/20(木) 00:29:51.47
>>55-56
感動した
62 :
2014/03/20(木) 00:37:21.92
codepad使うのどうでしょう?
スマホからも動作して出力とか見れるので便利そうな
何よりきちんとインデントできます。

http://codepad.org/
63 :
2014/03/20(木) 00:44:37.52
可読性が下がるからバッドノウハウであるという点を除けば微妙に勉強になるスレだな
64 :
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;
 }
}
65 :
2014/03/20(木) 01:16:23.03
ruby

def sum(start, end)
 raise 'バリデーションエラー' unless start == 1 and end == 100
 5050
end
66 :
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("答えはありません");
}
67 :
2014/03/20(木) 08:48:03.77
>>23
>>26
吹いたwww
68 :
2014/03/20(木) 14:26:14.35
69 :
2014/03/20(木) 15:23:21.43
evalキタコレ
70 :
2014/03/20(木) 15:51:59.10
運良くバグると答えが出てくる

int sum = 5050;
for( ; ; ){

}
printf("%d" , sum);
71 :
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

なんかありきたりでつまらないな...
72 :
仕様書無しさん
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));
73 :
仕様書無しさん
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;
74 :
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;
75 :
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;
}
76 :
2014/03/21(金) 06:58:02.74
rubyでかくと普通はこうなる!!!!
s = '1'
(2..100).each {|i| s += "+#{i}" }
print eval(s)
77 :
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 ; ←の跳び先ココ
78 :
2014/03/21(金) 09:47:55.47
マシン語てwバッドノウハウもくそもないw
79 :
2014/03/21(金) 10:20:37.13
この考えをコード化すればいける

細川式1から99まで足す計算方法
https://www.youtube.com/watch?v=Mk5w83KcVB8
80 :
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");
}
}
81 :
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";
82 :
2014/03/21(金) 11:37:52.13

# INCがあればADDは不要だ!
って書くの忘れた
83 :
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
84 :
2014/03/21(金) 12:48:00.34
Windowsのコマンドプロンプト + Wolfram|Alpha
start http://www.wolframalpha.com/input/?i=sum+of+1+to+100
85 :
仕様書無しさん
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
)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
一行で書いたら書き込めなかった
86 :
2014/03/21(金) 18:18:50.02
DECLARE
BEGIN

END;
/
87 :
2014/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;
/
88 :
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('+')));
89 :
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;


ここでカーソルを使う勇気は俺にはなかった...
90 :
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)}
91 :
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;
92 :
2014/03/22(土) 00:36:53.37
>>91
これが一番のクソコード
93 :
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;
}
94 :
2014/03/22(土) 01:04:05.92
ここまでビジュアル言語がない件
CodeIQにでてた http://flower-lang.com/demo.html でできるFlowerとかいう言語でやってみた
http://iup.2ch-library.com/i/i1156047-1395417638.png
バグなのか仕様なのかわからんがうまく動かん。
もっときれいなやつ作った)がバグでうまく動かんかった。
95 :
2014/03/22(土) 01:11:46.30
ビジュアル言語楽しいな
以下Google Blockly
https://blockly-demo.appspot.com/static/apps/code/index.html#pjrxzh
何の変哲もないコードです
96 :
仕様書無しさん
2014/03/22(土) 01:52:37.25
このスレ結構面白い
97 :
2014/03/22(土) 11:19:03.28
sum=1-100:

期待通りの出力しないとの問いに返事は
「仕様書のどこにも1づつ増やした数を加算していくとは書かれておりません。これは仕様変更ですので追加料金を頂きます」
98 :
仕様書無しさん
2014/03/22(土) 13:37:45.13
c

a = 0;
if (a != 5050)
a++;
if
99 :
98
2014/03/22(土) 13:38:18.32
そもそも計算式が違うわろた
100 :
2014/03/22(土) 14:23:12.42
この問題に関して、私は真に驚くべきアルゴリズムを見つけたが、このスレはそれを書くには狭すぎる。
101 :
仕様書無しさん
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
102 :
2014/03/22(土) 16:27:55.35
何回GOSUBしたらスタックオーバーフロー起きるんだろう
103 :
仕様書無しさん
2014/03/22(土) 17:17:16.28
デフォルトだと、60回くらい。実は、100回まわるように、CLEAR,NのNを調整して作った。
104 :
2014/03/22(土) 17:37:35.36
FOR〜NEXTでもスタック消費するN88-BASICさん
105 :
仕様書無しさん
2014/03/22(土) 17:40:48.23
それは知らなかった。
106 :
2014/03/22(土) 20:33:38.47
pythonがねえ
107 :
2014/03/22(土) 21:08:06.34
Mindも無いね
108 :
2014/03/22(土) 21:45:53.21
>>91のコードはタチが悪いような気がする。
パッと見だと何となく合っているように見える。
109 :
2014/03/22(土) 21:49:22.08
1+sum(1..100)に見えるのは俺だけか
110 :
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;
}
111 :
2014/03/22(土) 23:27:23.84
>>106
>>95のリンク先にBlocklyから変換されたPythonとDartとJavaScriptのコードがある
Blocklyすげぇ
112 :
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;
}
113 :
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;
}
114 :
2014/03/23(日) 13:06:14.69
>>100
そのためにideoneがあるじゃないかフェルマーさん
http://ideone.com/
115 :
2014/03/23(日) 13:27:39.22
...イデオン...だと?
116 :
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
117 :
2014/03/23(日) 15:16:02.22
スペースが重要な言語なんだっけ・・・?
118 :
2014/03/23(日) 15:30:02.37
Space Runaway Ideon
119 :
2014/03/23(日) 22:17:24.96
プログラミングで直値は使うなって言われたろ、マクロ定義しなさい
120 :
2014/03/23(日) 22:40:32.74
>>119
そんな死亡フラグ立てんなw
121 :
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
122 :
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};
123 :
2014/03/23(日) 23:55:42.75
これで一週間経つわけだが50ぐらいコードが出てるな
124 :
2014/03/24(月) 01:15:36.45
どうみても糞スレだったのに、思いのほか良スレに化けやがった
磨けば光る糞
125 :
2014/03/24(月) 01:31:49.78
匿名性の高い2ch×自由度の高いルールってとこか
126 :
2014/03/24(月) 02:28:24.76
気の利いたレスはできないけどコードなら書けるってね
127 :
2014/03/24(月) 11:07:21.86
>>126
あんまりそこを突っ込まない方が良さそうだな
128 :
2014/03/24(月) 11:19:32.93
投稿されたひどいコードを読む楽しみが日課になってる
129 :
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;
}
130 :
2014/03/24(月) 17:57:15.73
ひどいと思ってここに投稿されたコード全てじゃね?
131 :
2014/03/24(月) 18:54:57.24
一番ひどいのは容易くひどいコードを考えてしまう人間の罪なのさ
132 :
2014/03/24(月) 18:57:16.28
俺基準ひどいコード
・長い
・周りくどい
・読みにくい
・スパゲッティ
・明らかなタイポ
・裏で深刻なエラー
・ルール理解してない
・画像で描かれている
・コンパイラが存在しない
133 :
2014/03/24(月) 19:01:53.78
変数名がローマ字はセーフ
134 :
2014/03/24(月) 19:05:58.94
あかんやろ
135 :
2014/03/24(月) 19:08:55.85
>>132
あやまれ!Pietユーザにあやまれ!
136 :
2014/03/24(月) 19:24:19.66
var answer=(function(){
var num1=1;
var num2=100;
return eval(num1+'-'+num2);
})();
137 :
2014/03/24(月) 19:48:09.45
>>133
ハッカーを気取って、変数名がロシア語。
138 :
2014/03/24(月) 21:26:08.82
>>133
ないわ
139 :
2014/03/24(月) 23:19:03.33

このなかで正しい値になるやつは全部足切り、な
140 :
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;
}


旧式の引数の宣言ってこれでいいんだっけ
141 :
2014/03/25(火) 00:50:33.45
>>139
逆だろ。
実務で過去のの糞コードを一掃したい時でも、
「それは(見かけ上正しく)動いてるから捨てられない」
なんてことがありすぎる。
結果が正しいのはむしろ前提だ。
142 :
2014/03/25(火) 00:51:39.60
「捨てられない」なんて思っているのは俺ではない。いい忘れた
143 :
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;
}
144 :
2014/03/25(火) 22:36:38.13
javascript:window.open("https://www.google.co.jp/#q=1から100までの足し算の結果");
145 :
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);
}
}
146 :
仕様書無しさん
2014/03/27(木) 00:21:39.06
программа сумма_1_100

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

сумма = 0
для число = 1, 100
  сумма = сумма + число
конец для
писать(*,*) "сумма = ", сумма
конец программа
147 :
2014/03/27(木) 03:14:56.26
1-100の足し算とかとんちか!
148 :
2014/03/27(木) 11:14:54.46
#include "con"
149 :
2014/03/27(木) 11:53:50.14
最も酷いのは電卓を呼び出してキーイベントで電卓叩くプログラムじゃないかな
150 :
2014/03/27(木) 12:20:42.10
さすがSE様、コードは書かねえ
151 :
2014/03/27(木) 16:25:31.06
>>146
FORTRANっぽいけど何言語ですのん?
152 :
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(合計);
  }
}

「ひどさ」にもいろいろな種類があると思う
153 :
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;
}
154 :
2014/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;
}
155 :
2014/03/27(木) 18:53:38.37
>>154
おお、動いた。計算中 フォーカスを電卓以外に移すと(w

コンパイルこんな感じ → cl ファイル名.cpp user32.lib shell32.lib
156 :
2014/03/27(木) 18:56:28.21
電卓を外している俺には使えないな
157 :
仕様書無しさん
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:"を頭につけてあげれば実行できる
他のブラウザは知らんです
158 :
2014/03/27(木) 19:16:51.00
Excelがインストールされてる事が前提のコードとか書いてもいいのよ……VBで
159 :
2014/03/27(木) 19:26:58.70
そういや電卓が入ってないPC想定してなかったわw
本当の意味で酷いな・・・
160 :
2014/03/27(木) 19:44:01.07
面白いww
161 :
2014/03/27(木) 21:39:48.44
これは良スレ
162 :
2014/03/27(木) 23:14:51.85
電卓ワロタ
163 :
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;
}
164 :
2014/03/28(金) 00:28:18.40
>>163
また途中から雑なw
165 :
2014/03/28(金) 00:32:19.74
しかし、このスレの意義が分かっていない奴が多すぎる。

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

>>1 のソースを良く見てみろよ。
166 :
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>
167 :
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(");}"
);     }
168 :
2014/03/28(金) 01:48:18.23
>>165
答え入れてる変数はループの外で宣言されてるから、答えには自由にアクセスできるじゃないか。
何をいっているんだ。
169 :
2014/03/28(金) 02:00:54.73
>>165
これは恥ずかしいわ
170 :
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);
}
171 :
2014/03/28(金) 06:03:57.75
まずMS-DOSのコードをダウンロードします
172 :
2014/03/28(金) 12:32:31.78
大して面白味もないコードを脳内デバッグするのめんどいから、どう酷いかの解説もつけちゃえよ
173 :
2014/03/28(金) 17:26:48.10
ひどいコードへの道を考えれば早いな
1、とりあえず静的変数を使え
2、定数はマジックナンバーか同じ数値なだけの関係の無い定義済み定数
3、無駄に継承、逆に分かりにくい関数化
174 :
2014/03/28(金) 18:14:17.71
プログラム素人だけど画像フォルダを勝手に1-100までリネームして結合してはきだすとかだめなの?
175 :
2014/03/28(金) 18:19:56.14
は?
176 :
2014/03/28(金) 20:42:31.58
一応書いとこう

つスレタイ
177 :
2014/03/28(金) 21:10:31.51
C
int sum = 0;
int i;
for(i = 1 ; i<=100 ; i++){
sum += i;
}

8bitコンパイラを想定してないからひどいコードだよね?
178 :
2014/03/28(金) 23:19:56.79
>>174
これはひどい
179 :
2014/03/29(土) 00:15:16.64
(悪い意味で)
180 :
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;
}
なんで今まで思い付かなかったんだろう
181 :
2014/03/29(土) 01:42:29.02
俺はコードを100本持っているが
お前らには貸さん






1から100まで貸さんコード
182 :
2014/03/29(土) 01:43:44.48
>>7に気が付かなかったからだろ
183 :
仕様書無しさん
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();
}
184 :
2014/03/29(土) 02:49:25.81
補足:ans関数を一度も呼び出していないところに注目。
185 :
2014/03/29(土) 05:05:34.76
>>180
笑った
186 :
2014/03/29(土) 05:06:25.03
>>182 うん
187 :
2014/03/29(土) 05:07:35.67
ごめん>>186>>185が俺
188 :
2014/03/29(土) 06:31:06.20
>>182
見てなかった
189 :
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();
}
190 :
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
191 :
2014/03/29(土) 10:33:04.23
>>189
マジックナンバー・5050を吐き出してるだけじゃねぇかと思ったら割とすごい
関数のポインタとか(゚听)ワカンネ
192 :
2014/03/29(土) 12:32:34.16
>>183,189
もはや足し算してないじゃん・・・

元ネタをガン無視しているから、正直つまらん。
もっとウィットが欲しい。一休さんみたいな奴。
193 :
2014/03/29(土) 13:53:06.67
え?
194 :
2014/03/29(土) 14:14:54.36
main (){
system ("expr 1 + 2 + 3 + 4 + 5 + 〜〜 100");
}
195 :
2014/03/29(土) 14:57:31.72
>>192はなんとなくそのコード読めてないような気がする。
196 :
2014/03/29(土) 15:11:10.82
>>192
確かに足し算を奇抜な発想で実装するコードも見たいけど、
いろいろな意味で奇抜なコードが見れて楽しいから、
>>1の仕様や、意味に「大体あってる」程度のコードはいいんでないの?
197 :
2014/03/29(土) 15:16:58.10
加算を論理記号で表現しようと思ったけどめんどくさいのでやめた
198 :
2014/03/29(土) 17:08:53.76
var i=s=0;while(i++<100)s+=i;alert(s);
38バイト
199 :
2014/03/29(土) 17:18:49.57
GoogleのClosure CompilerでJavaScript圧縮したら1byte減った

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

まぁ短いには短いけど問題が単純すぎて短さを競うには向いてないな...
200 :
仕様書無しさん
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;
}
201 :
2014/03/29(土) 21:13:50.38
>>180
それ、sleepを利用してソートするプログラムであった
202 :
2014/03/30(日) 05:21:52.92
>>201
今知ったけどすごいアルゴリズムだな…
203 :
2014/03/30(日) 06:11:17.65
>>199

var i=s=0;
だと s はグローバルとしての宣言になるし、
それなら var つけず i もグローバルにしちゃえばいいのに。
Closureよくわからんな
204 :
2014/03/30(日) 06:41:26.92
>>203
元からsはグローバルだった
205 :
2014/03/30(日) 12:09:18.10
中にプロフェッショナルならこう書くべきというコードもあるからな
・5050を返す以外何もしない→使用するマシンパワー最小→ヌルサクが要求されるジャンルのプログラマに要求される答え
・メモリブロック取って全データ展開後それを加算→実世界では1づつ増えていく値としても「必ず」でなくデータ重複したり飛んだりがまれにあり、それが完成直前に判明して対応要求される事があり得る
そういう場合でも展開データに細工するプログラムを挟めばすむ。数式で計算する方法だとその部分全体を作り直しになる。デスマの可能性を最小にする→業務用プログラマに要求される答え
206 :
2014/03/30(日) 13:36:01.41
>>203
ただ結果さえ表示するならば確かに
for(i=s=0;100>i++;)s+=i;alert(s);
になるな。33バイトかな?
207 :
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
208 :
2014/03/30(日) 13:44:13.86
あ、これforループにして初期化中につめたほうが1文字減るか…
209 :
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);//オーバーフロー
}
210 :
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:の部分は圧縮通したら消えてた
211 :
2014/03/30(日) 19:43:00.65
https://ideone.com/yHXmwF
C言語のコードをgccでアセンブリ言語に変換しただけだから俺アセンブラわからん
だからideoneで動かない理由もわからん。ちなみにwinでやった
212 :
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;
}
213 :
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);
214 :
2014/03/31(月) 14:28:02.35
>>213
速そう(小波感)
215 :
2014/03/31(月) 17:48:32.75
組み込み関数使ってSSE命令使っちゃうのもいいかも
216 :
2014/04/01(火) 01:35:34.98
217 :
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);
218 :
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;
219 :
2014/04/02(水) 19:50:20.89
>>218
可読性すげえな
220 :
2014/04/02(水) 21:58:55.71
エクスプローラでファイルを1個から100個まで作って、ctrl+aして、ステータスバーのファイル数を見る
221 :
2014/04/03(木) 01:27:15.12
スレタイ読め馬鹿
222 :
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'))

#千手観音より高性能!
223 :
2014/04/03(木) 04:31:05.13
>>221
自然言語
224 :
2014/04/04(金) 01:12:22.81
スレタイ読め馬鹿
225 :
2014/04/04(金) 03:36:30.40
チョンころが一匹
226 :
2014/04/04(金) 15:42:21.13
本人は面白いと思っているみたいなので、暴れられても困るし、そっとしておいてやるのが吉
227 :
2014/04/05(土) 01:39:33.35
そろそろお題変更してもいいような
228 :
2014/04/05(土) 09:41:00.29
じゃ素数探しで
229 :
2014/04/06(日) 17:29:24.78
ブルドッグかオタフクだな。
230 :
2014/04/06(日) 20:27:05.68
2
231 :
2014/04/06(日) 23:02:56.18
string p("Prime");
cout << p.length();
232 :
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)))
233 :
2014/04/07(月) 11:29:26.20
>>79
n(n+1)/2 じゃなくて?
ちなみに鷲はこの式を 10才のときに思いついた。
跡でピタゴラスに2歳負けたことに気づいて悔しがったのは秘密w
234 :
2014/04/08(火) 07:47:20.49
3
235 :
2014/04/08(火) 07:49:17.75
このレス番が素数じゃない
236 :
2014/04/08(火) 08:53:10.46
U235なんて素敵じゃないの
237 :
2014/04/08(火) 21:38:07.76
このレス番号は素数か
238 :
2014/04/08(火) 21:52:40.48
237=3*79
239 :
2014/04/08(火) 21:57:36.05
真の素数はこちら
240 :
2014/04/09(水) 01:33:46.18
確実に素数じゃないと分かる偶数
241 :
2014/04/09(水) 03:42:37.09
いつまでやんの
242 :
2014/04/09(水) 09:16:55.61
>>241
10レス後にもう一度来て下さい
本当の素数をお見せしますよ
243 :
2014/04/09(水) 11:20:12.12
print "一から百までの足し算を考えてくだちい"
244 :
2014/04/09(水) 14:45:35.88
このスレからソースコード引っ張ってきてコンパイルするスクリプトっての考えたけど
ほんとうに酷いコードなのか分かんなくなってきた
245 :
2014/04/09(水) 22:27:26.40
このスレには真理がある
246 :
2014/04/09(水) 22:28:49.90
新しいお題に入る前に>>1のお題のベストオブクソコード決めようぜ!
247 :
2014/04/09(水) 22:39:17.89
真理さん何処にいるの?
248 :
2014/04/09(水) 23:20:49.00
おぼえていますか
249 :
2014/04/09(水) 23:30:52.66
>>246
じゃあ言い出しっぺのお前が候補を10個ぐらい選んでくれ
250 :
2014/04/10(木) 01:28:38.99
>>249
オレオレノミネート
>>7 このお題で環境依存コードを書く発想
>>11 実務で起こりそう。メソッドにわけないところが可読性下がって良い。
>>15 男なら黙ってマジックナンバーを書かなければならない時もある。
>>55 勘違いしたDSLっぽくて良い
>>65 勘違いしたテスト駆動開発の雰囲気が良い
>>129 デザインパターン意識しすぎるあまりに、処理内容に相応しない複雑さを感じ取れて良い
>>143 コメントが害悪となるコードのオーソドックスが良い
>>189 バッファオーバーラン、実際はメモリリークして動いて見えることもありそう

トリッキーなコードはたくさんあったけど、お題の意味で酷いを自分なりに解釈。
割と新し目のマなので、ツッコミどころは多いはず。
251 :
2014/04/10(木) 15:33:29.56
>>250
もし君が専用ブラウザを使っていて過去ログが保存されているようなら、今のうちに削除しておくことを勧める。
252 :
2014/04/10(木) 17:09:00.32
異論があるなら>>251が10件理由付きで選んでほしい
253 :
2014/04/11(金) 21:17:36.50
まだなかったC# LINQ
int sum = System.Linq.Enumerable.Range(1, 100).Sum();
254 :
2014/04/11(金) 21:42:03.96
ひどいというより、むしろすごいという感じがしないでもないんだが
これ、どこらへんがまずいのか教えて?
255 :
2014/04/12(土) 00:27:19.21
計算量だけ目をつむれば、
可読性が高くていいコードって思うんだけど
Haskellなら
sum [1 .. 100]
256 :
2014/04/12(土) 12:48:29.38
rubyで。
(1..100).inject(:+)
=> 5050

ついでに
(1..100).inject(:*)
=> 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
257 :
2014/04/12(土) 23:51:54.94
c++
int sum = boost::accumulate(std::vector<int>({BOOST_PP_ENUM_PARAMS(101, )}), 0);
258 :
2014/04/13(日) 06:17:20.16
>>256
何がひどいのか分からんし、普通のやり方じゃん
新しいこと覚えて嬉しかったのか?
259 :
2014/04/13(日) 11:39:43.40
可読性低いとかマシンリソース無駄遣いとかデバッグテスト時間かかるとか、最初から動かないのさえ与える影響を考えるとひどいとは言い切れんと思うのね
プログラマにとって「ひどい」とは間違いが起こり易いがデバッグテストの期間に一切検出されず実運用になって初めて問題発覚しそれがプログラマ自体の不注意がバグの原因にされてしまう
つまりただ働きされる原因となり得る物こそが「ひどい」といえる
よって不必要な分岐をたくさん作っている>>93こそがダントツでひどいコードといえる
特に元々の仕様要求にないおせっかいな部分が、のちに「おまえのバグ」と言われかねないので最悪である
260 :
2014/04/13(日) 13:44:26.83
"ひどい"には厳格な基準なんてないんだから>>1が決めるか、優勝は決めないかのどっちかしかなくね
261 :
2014/04/14(月) 02:07:57.32
>>1なんだけど(と言っても証拠も何もないけどね)
個人的にはひどいコードの基準を明確に持っているわけでも、
優秀なプログラマーでも無いので優勝者を選ぶのは無理でつorz

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

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

ルールとか自治とか関係なしに面白いコードみたいので、
今まで>>1とレスは控えてましたが、次の方針が決まりそうになかったので最初で最後の>>1としてのレスでした。
262 :
2014/04/14(月) 08:39:24.40
じゃあ
お題候補:サイコロ(1〜6からランダムに出力)
263 :
2014/04/14(月) 12:35:38.26
>>262
おお、楽しそう
264 :
2014/04/14(月) 18:24:43.88
上にある通り素数探しかな
265 :
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;
}}
266 :
2014/04/14(月) 19:38:27.13
そもそも素数をどこまで探せばいいのかわからん
267 :
2014/04/14(月) 20:24:50.14
そりゃ記録に残せるぐらいだろ
ttp://primes.utm.edu/
268 :
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++;
}
269 :
2014/04/15(火) 00:02:10.27
>>268
niceフォロー
270 :
2014/04/15(火) 03:11:20.11
6面しかないサイコロなんて!
20面とか10面とか8面とか有ったほうがいいし、6面でもいっぺんに100個振りたいじゃないですか?
271 :
2014/04/15(火) 03:25:32.73
いや、全然。
272 :
2014/04/15(火) 03:55:13.86
なんだTRPGやったこともウォーゲームやったこともないクソかよ……
マなのにだらしねえな
273 :
2014/04/15(火) 08:37:06.61
お題5000回読み直せチョン野郎。
274 :
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
が計算される。
275 :
2014/04/15(火) 12:02:54.54
>>274
解説付きでわかりやすいけど、突然コート中に出てきたら死ぬる
お題変わったあとの告知をどうするか問題になりそう。
276 :
2014/04/15(火) 18:55:38.15
>>1の方針からして面白いコードが見られたらいいんだから
お題が変わった後でも書き込んでもらって全然かまわんと思うけど

というかちゃっちゃと次のお題決めようぜ
277 :
2014/04/15(火) 21:05:21.40
このスレでお題変えると収集つかなくなると思うから
一週間で一つの問題を解くスレを別途作るべきだと思う。うん。
278 :
2014/04/16(水) 20:54:15.03
レス単位とかどうよ
300レスくらいから問題変更
流石に乱立はまずいだろうし

さいころC++
int dice(void){
return
// 1
// 2
3
// 4
// 5
// 6
// 追加可能...
;
}
279 :
2014/04/17(木) 00:34:28.74
お題にのコードを投稿するときにアンカーでレス番付ければいいんじゃね?

>>278だったら

お題:>>262 サイコロ

みたいな
280 :
2014/04/17(木) 05:34:14.53
2ch なんだから好きにしたらいい。
混乱して困るなら Wiki などへ移動するのが合理的であり、ここではお題でもコードでも好きに投稿したらいい。
その上で 279 の提案は便利だと思う。
281 :
2014/04/17(木) 06:40:11.21
カルドセプトサーガのひどいサイコロ思い出した
282 :
2014/04/18(金) 00:55:30.51
お題 >>262 サイコロ
Ruby

def dice
 (Time.now.to_i%6).to_i
end
283 :
2014/04/18(金) 19:21:27.96
お題:さいころ>>262
C

int i;
printf("%d\n", i%6+1);
284 :
2014/04/19(土) 11:20:37.50
>>283
その発想はなかった
285 :
2014/04/19(土) 13:02:04.92
>>283
Visual C++でやったらコンパイルエラーになったぞw
286 :
2014/04/19(土) 13:52:00.70
そこら辺の領域をゴミごと拾って初期化せず使うからランダム(に見える)
忠実なコンパイラは通すが頭がいいコンパイラは初期化してないって怒る
287 :
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;
}
288 :
2014/04/19(土) 15:45:49.02
>>287
プログラマーなら「FizzBuzz問題」解けるよな?
http://nozomi.2ch.net/test/read.cgi/prog/1209467166/
にけっこうヒドいのがあるぞ。
289 :
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;
}
290 :
2014/04/19(土) 17:19:12.95
>>289
スマン改行区切りになってた
291 :
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";
292 :
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;
}
293 :
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;
}
294 :
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");
}
}
295 :
2014/04/21(月) 22:46:50.97
>>294
プリングル?
296 :
2014/04/21(月) 23:15:09.17
>>294
コメントが閉じてないような
297 :
2014/04/22(火) 22:41:17.88
ちょっとまとめてみた

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

こんなところかな。面白いコードが見たいぜ
298 :
2014/04/23(水) 00:01:10.84
>>297
LTGM!
299 :
2014/04/23(水) 00:02:23.66
>>297
LGTM!
300 :
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;
}
301 :
2014/04/23(水) 22:45:28.10
お題乱立もなんか分散して読みにくいのでは、
選択肢があるのはいいけど>>1が次のお題と決めた>>262-270で選ぶのがよさそうな
302 :
2014/04/24(木) 06:13:51.25
勘定系はないのか
303 :
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;
}
}
304 :
2014/04/25(金) 22:52:52.70
>>1   1から100の足し算結果を出力
>>228  素数探し
>>262  サイコロ(1〜6からランダムに出力)
>>287  FizzBuzz問題
>>300  数学関数(round,pow,sqrt)
305 :
2014/04/25(金) 23:13:43.31
>>1   1から100の足し算結果を出力
>>228  素数探し
>>262  サイコロ(1〜6からランダムに出力)
>>287  FizzBuzz問題
>>300  数学関数(round,pow,sqrt)
>>312  自分探し
306 :
2014/04/26(土) 00:08:09.33
自分探し?
307 :
2014/04/26(土) 05:08:25.69
す、素数?
308 :
2014/04/26(土) 11:59:20.41
>>307
ゆとりここに極まれりだな。
もとかず、に決まってんだろ。
309 :
2014/04/26(土) 12:04:41.01
素敵な素数の素子
310 :
2014/04/26(土) 20:13:27.01
自分探し(BASIC)

10 CLS
20 PRINT "アナタ ノ ヤリタイコト ハ ナンデスカ?"
30 INPUT A$
40 PRINT "アナタ ハ " & A$ & "ヲ ココロザス スバラシイ ヒト デス。"
311 :
2014/04/26(土) 22:42:17.84
50 goto 20
312 :
2014/04/26(土) 22:44:55.25
【自分探し】
自分を探すプログラム

例(C#)
class Program
{
static void Main(string[] args)
{
System.Console.WriteLine("私は、{0}に存在します。",System.Reflection.Assembly.GetEntryAssembly().Location);
}
}
313 :
2014/04/27(日) 10:05:25.31
いや、自分探しってのは、本当の私はこんなんじゃない、どこかに天職があるはず、みたいなのだろ。
>310 の 40 行目を
40 PRINT "モット ジブンラシイ イキカタ ガ アリマス。"
にする感じ。
A$ を蒸してるのは仕様。
314 :
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;
315 :
2014/04/27(日) 23:48:19.10
>>312
別プログラムからMainが呼ばれた時に自分じゃなくなるよ
316 :
2014/04/28(月) 09:14:55.68
人に言われて動いていると自分が自分でなくなるというわけか。
考えさせられるなw
317 :
2014/04/29(火) 04:02:45.59
>>316 プログラムは美しいな
318 :
2014/05/01(木) 17:54:22.79
>my
not found.

>this
not found.

>self
not found.
319 :
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.
320 :
2014/05/11(日) 13:54:27.64
スレタイ「1-100 の足し算を一番ひどいコードで書いた奴が優勝」

>>319
優勝 !!
321 :
2014/05/11(日) 19:35:26.96
>>319
IDENTIFICATION DIVISION.
から書いてたら優勝!

何気に >>2 はコンパイル済みなら激速じゃね?
322 :
2014/05/11(日) 19:45:46.75
>>320-321
レス300越えて、誰もCOBOLで書いてないからびっくりしました。
完全に優勝狙ってました(^^)
323 :
2014/05/11(日) 20:13:22.36
コボルなら足し算はADD使ってほしいな
324 :
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
325 :
2014/05/12(月) 00:06:23.66
>>324
28 って ブランチだよね?
CA じゃないとまずくない?
326 :
2014/05/12(月) 19:56:16.16
>>325
oh...
久々にニーモニック表見たからJPとJR見間違えたよ…。
327 :
2014/05/13(火) 02:16:11.75
日本と国鉄くらい違うじゃないか...
328 :
仕様書無しさん
2014/05/16(金) 10:30:30.99
329 :
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

二番煎じ
330 :
2014/05/22(木) 02:05:15.24
>>84
こういう誰かに丸投げするタイプの大好き
331 :
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);

}

}
332 :
2014/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)
333 :
2014/06/04(水) 17:10:51.73
>>332
言語名忘れてた。
z80
334 :
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);

}

}
335 :
2014/06/04(水) 17:29:44.34
5000?
336 :
2014/06/04(水) 17:39:01.25
>>335

普通に書いたらいいコードになっちまうからな
337 :
2014/06/04(水) 19:05:45.14
>>336
Javaって、
int sum で、
sum += 101 / 2;
ってやると、50.5 が加算されるの?
338 :
2014/06/04(水) 21:18:34.87
>>336

されない
339 :
2014/06/05(木) 00:33:17.65
糞コテはさっさと巣へ帰れ
340 :
2014/06/05(木) 00:38:44.71
>>339
ね、>334 って、おまいが書いたの?w
341 :
2014/06/05(木) 07:23:08.22
「こんな簡単な修正、試さなくても直ってるに決まってるじゃん」
未熟なプログラマのあるある
342 :
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);

}

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

どや
344 :
2014/06/05(木) 18:22:20.96
>>343
0でreturnして終了じゃんそれ
345 :
2014/06/05(木) 18:35:04.59
>>344
えっ?
きちんと5050がreturnされるはずだけど
変数名似てて見辛かったのかな
346 :
2014/06/05(木) 18:38:46.17
だまされた、break抜きか...orz
347 :
2014/06/05(木) 21:11:01.18
いや、コンパイルエラーだよ
348 :
2014/06/06(金) 01:35:02.12
なんだか、みんな結果を表示したり戻したりするだけだよね〜

優勝は俺かなぁw
349 :
2014/06/06(金) 02:56:55.01
糞コテはさっさと巣へ帰れ
350 :
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;
351 :
2014/06/07(土) 01:21:10.26
>>349
お前優しいな。
だが荒らしに構う奴も荒らしだ。
352 :
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);
353 :
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
'
354 :
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
355 :
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
'
356 :
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関数を使う*/
} /*波カッコ*/
357 :
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);}
358 :
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);}/*     |           |
*/
359 :
2014/06/25(水) 22:02:11.52
>>358
二番煎じ
発想が貧困だよ
360 :
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

もっと酷くも書ける
361 :
2014/06/25(水) 22:26:56.87
BASICね
362 :
2014/06/26(木) 07:47:04.75
>>359
おw レスもらえるだけでうれしいw
そ、そか ort
AAだめか
363 :
2014/06/26(木) 13:07:42.32
/* このソースはMSゴ12ptで閲覧すること */
って入ってない時点でダメぽ
364 :
2014/06/26(木) 13:08:16.05
Pゴだっけ…?
365 :
2014/06/27(金) 13:25:30.94
>>363 おおw またレスがw うれしいな
しかし、それはいくら何でも初心者に媚び過ぎじゃあないの?
レスの付け方と同じくAAの見方は常識で一々書か......って、
オイッ!!(*`Д´)っ))ダッケ…? ジャナイダロ! シッカリシロヨ

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

ちなみに AA は自分で描いたものじゃあ無いです
そんな技術は持って無い
366 :
2014/07/02(水) 12:08:23.77
くっさ
367 :
2014/07/02(水) 18:43:55.10
>>365
自分語りはいいから駄コード書けよ
368 :
2014/07/02(水) 21:50:46.42
1-100の足し算
引き算なのに足し算
眠れなくなる
369 :
2014/07/03(木) 00:14:25.89
+/1+i.100
370 :
2014/07/08(火) 23:56:08.67
;;; -*- emacs-lisp -*-

(with-temp-buffer
(mapcar (lambda (n) (insert-char ? n)) (number-sequence 1 100))
(- (point) 1))
371 :
2014/07/23(水) 09:15:56.34
def iti
return 1
end

def ni
return 2
end

……

def calc
sum = iti + ni + ...
end
372 :
2014/10/30(木) 05:32:34.36
system(”calc.exe”)
sendkey(”1”)
373 :
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;
  }
 }
}

古いマシンほど早く答えが出るのがひどい。
374 :
2015/02/03(火) 19:37:25.85
>>373
関数の方が定義されていなくて、C99以降では文法違反の所もひどい。
375 :
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
376 :
1/2
2015/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};
377 :
2015/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;
}
378 :
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
379 :
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));
380 :
2015/06/13(土) 12:09:26.21
msgbox "1-100は、-99"
381 :
2015/06/13(土) 12:11:19.74
そこは、
msgbox "!1ー100は、足し算ではありません"
だろ。
382 :
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
383 :
2015/07/07(火) 17:07:34.85
// C++ (as better C)
「オーバーフローのチェックをしました!(ドヤ」
http://codepad.org/ywkQTLM1
384 :
2015/07/16(木) 04:08:15.20
この野郎……深夜に大声で笑わせやがって……
385 :
2015/08/07(金) 16:43:46.66
>>1
1-100は引き算だろ
386 :
2015/10/22(木) 22:30:47.29
<phq
$a=1+100
$b=100/2
echo $a*$b;
?>
387 :
仕様書無しさん
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
388 :
2016/05/16(月) 22:15:19.53
C
///////////////////////////

int answer;

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

return answer;
389 :
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(); //きちんと終了する
}
390 :
2016/05/22(日) 11:40:00.54
C

#include<stdio.h>
int main(){printf("5050");}
391 :
2016/05/28(土) 13:33:47.21
>>383
INT_MAX や、CHAR_MAX って、標準で定義されている定数なの?
392 :
2016/05/28(土) 23:17:28.64
>>388
落ちそう
393 :
2016/06/16(木) 18:27:06.32
system.out.print(googleSearch("1から100までの足し算 答"));
394 :
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
395 :
2016/06/26(日) 22:27:12.18
5050
396 :
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;
397 :
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);
}
398 :
2016/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);
}
399 :
2016/09/14(水) 22:00:22.19
#!/usr/sbin/octave
sum(1:100)
400 :
仕様書無しさん
2016/09/28(水) 17:10:04.05
>>1
そんなの↓これに決まってんじゃんw

int sum = 0;
sum = sum + 1;
sum = sum + 2;
(略)
sum = sum + 100;
401 :
仕様書無しさん
2016/09/30(金) 01:07:53.12
Dim sum As Variant
sum = InputBox("1-100の足し算の答えを入力してください")
MsgBox("1-100の足し算の計算結果は" & Str(sum) & "です")
402 :
仕様書無しさん
2016/09/30(金) 01:39:30.90
>>400
>>2の二番煎じって感じがする。
403 :
2016/09/30(金) 02:19:22.04
既出だよん >>91
404 :
仕様書無しさん
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)}
405 :
2016/09/30(金) 22:17:59.00
>>383
これすき
406 :
仕様書無しさん
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 =
407 :
仕様書無しさん
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);
408 :
仕様書無しさん
2016/10/02(日) 01:25:30.55
俺が優勝か
409 :
仕様書無しさん
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
410 :
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;
}
411 :
仕様書無しさん
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);
}
412 :
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
413 :
2016/11/06(日) 19:24:20.00
vbs
 ってかExcel二番煎じ

Rem
414 :
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
415 :
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, ",", "+"))
416 :
仕様書無しさん
2017/01/31(火) 19:17:10.73
保守
417 :
2017/01/31(火) 19:27:20.88
ここはプログラマーの社交場
ニートや中学生にはここに来る資格はありませんので
おとなしくじっプラにおかえりください
あしからず
418 :
2017/03/17(金) 03:17:18.76
>>368
2の補数の足し算のコード書いてください。
419 :
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);
132KB

新着レスの表示

★スマホ版★■掲示板に戻る■全部前100次100最新50

名前:E-mail: