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

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


スポンサーリンク

このスレッドと同じタグが付けられてるスレッドを探せます。edit
▶︎厳選銘柄配信を15日間無料でお試し配信実施中!株投資情報のファーストクラス

2: 仕様書無しさん 2014/03/17 02:03:42
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
>>2を超えるコードが見たい

4: 仕様書無しさん 2014/03/17 02:35:33
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
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
/* 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]=312\n", sumFromTo(1, 100));
}

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

7: 仕様書無しさん 2014/03/17 06:52:50
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
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
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
Cで普通に
int main()
{
  int kotae = 0;
  int tasukazu = 1;
 kurikaesi:
  kotae = kotae + tasukazu;
  tasukazu = tasukazu + 1;
  if (tasukazu <= 100) goto kurikaesi;
  printf("176\n", kotae);
  exit(0);
}

11: 仕様書無しさん 2014/03/17 07:22:58
#include <stdio.h>

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

12: 仕様書無しさん 2014/03/17 07:24:49
既出かもしれんが

include <stdio.h>

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

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

13: 仕様書無しさん 2014/03/17 11:55:25
Pharo(Smalltalk)

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

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

15: 仕様書無しさん 2014/03/17 11:58:00
int s=5050; //電卓で計算済み

45: 仕様書無しさん 2014/03/18 23:50:20
>>15が好きだわw

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

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

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

18: 仕様書無しさん 2014/03/17 16:29:05
//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
C

#include <math.h>

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

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

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

}

21: 仕様書無しさん 2014/03/17 21:50:16
ミスったC++

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

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

23: 仕様書無しさん 2014/03/17 22:51:58
プロならテストケースも書くだろ

assertEquals(5050, 5050);

26: 仕様書無しさん 2014/03/18 00:27:57
>>23
テスト駆動開発だ!

67: 仕様書無しさん 2014/03/20 08:48:03
>>26
吹いたwww

67: 仕様書無しさん 2014/03/20 08:48:03
>>23
吹いたwww

25: 仕様書無しさん 2014/03/17 23:38:19
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)

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

28: 仕様書無しさん 2014/03/18 00:35:24
VBで作ってみたよ。

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

29: 仕様書無しさん 2014/03/18 15:54:42
数学の公式を使う

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

30: 仕様書無しさん 2014/03/18 16:41:03
機械語ではよ

31: 仕様書無しさん 2014/03/18 17:56:12
++++[>+++++++++++++<-]>+.<
>-----.<
>+++++.<
>-----.<

32: 仕様書無しさん 2014/03/18 19:15:39
#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( "\n", (unsigned int)((double)n*10000/TRIAL)); // 確率的にこれくらい
};

39: 仕様書無しさん 2014/03/18 21:48:55
>>32
なんか正しくなりそうwww

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

33: 仕様書無しさん 2014/03/18 19:32:11
もういっちょ。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( "\n", foo<100>::result ); // コンパイラさん、がんばれ。
}

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

34: 仕様書無しさん 2014/03/18 20:35:02
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
&がエスケープされて&amp;になっとる・・・

36: 仕様書無しさん 2014/03/18 21:15:57
1引く100の足し算???

38: 仕様書無しさん 2014/03/18 21:46:04
マなら>>36のコードを見て語れ

37: 仕様書無しさん 2014/03/18 21:32:24
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;
{

40: 仕様書無しさん 2014/03/18 21:56:57
ribyistなら最低さがわかる

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

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

44: 仕様書無しさん 2014/03/18 23:25:38
#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, "", i);
add(ra, sizeof(ra), rb, sizeof(rb), rc);strcpy(ra,rc);
}
printf("1-100までの足し算 = ", ra);return 0;
}
正攻法。いろんな意味でアレ
規制の都合で改行控えめです

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

46: 仕様書無しさん 2014/03/19 00:55:22
return 5050;

47: 仕様書無しさん 2014/03/19 01:02:57
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: 仕様書無しさん 2014/03/19 02:06:35
bashならもっとスマートに書こうぜ

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

50: 仕様書無しさん 2014/03/19 10:46:35
yesの出力を1~100行切り取って行数数えるか、なるほど

51: 仕様書無しさん 2014/03/19 12:42:22
黒魔術

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

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

55: 1/2 2014/03/19 21:16:56
#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( "\n",

61: 仕様書無しさん 2014/03/20 00:29:51
>>55
感動した

56: 2/2 2014/03/19 21:17:26
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
+ TWENTY + TWENTY ONE
     ↑
コンパイル通らないと思われ。

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

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

59: 仕様書無しさん 2014/03/19 21:31:26
どのコードも純粋にすごい

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

http://codepad.org/

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

64: 34で既出だけど 2014/03/20 01:01:23
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
ruby

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

66: 仕様書無しさん 2014/03/20 01:45:16
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("", i);
return;
}
}
printf("答えはありません");
}
  • 人前での閲覧注意な笑えるボケて(bokete)画像
  • 東芝、SKハイニックスへの賠償請求額はたった「1100億円」–SK社の営業利益の3割相当
  • 日本人にありがちなこと
  • モバイルデータ通信、満足度トップはドコモ、最下位はソフトバンク、勝因と敗因は?
  • ソニー、PS4用のヘッドマウントディスプレーを開発中 ゲームで仮想現実
  • 自分からすれば信じられない人
  • ネトウヨ系まとめサイトや東亜板が「嫌儲」に攻撃され謝罪に追い込まれる
  • Apple(アップル)、低価格版iPadに「Retinaディスプレイ」採用–価格は据え置き
  • 日本人は1つのスレでじっくりと議論するが、中国人の立てるスレはレス2回で終了。長文は読まれない。
  • Apple(アップル)、低価格版iPadに「Retinaディスプレイ」採用–価格は据え置き
  • スポンサーリンク

    コメント

    *禁止キーワードを含むと投稿できません。
    コメントフォーム
    評価する
    • 1
    • 2
    • 3
    • 4
    • 5
    • リセット
    • 1
    • 2
    • 3
    • 4
    • 5
    • リセット