サンデープログラマーのC++/CLI -15ページ目

サンデープログラマーのC++/CLI

Cをちょっと知ってる程度からどこまでいけますか?

a-b=c で、a,b,c共に1~9の数字を一つずつ使うという虫喰い算。
よーし。じゃぁまたプログラムかいちゃおかな~。

前よりはエレガントだよねっ



#include "stdafx.h"
#include "math.h"


bool check(int i)
{
int j[10],k,l,tmp;

j[0]=0;
for(k=1;k<10;k++){
tmp=0;
for(l=0;l<k;l++) tmp+= j[l]*(int)pow(10.0,9.0-l);
j[k] = (i-tmp)/(int)pow(10.0,9.0-k);
if(j[k]==0) return(false);
}

for(k=1;k<9;k++){
for(l=k+1;l<10;l++){
if(j[k]==j[l]) return(false);
}
}


return(true);


}

int _tmain(int argc, _TCHAR* argv[])
{
int i,j,k;

for(i=123456789;i<=987654321;i++){
if(!check(i)) continue;
for(j=123456789;j<=987654321;j++){
if(i<j) continue;
if(!check(j)) continue;
k=i-j;
if(check(k)) printf("(%ld - %ld) = %ld \n",i,j,k);
}
}

return 0;
}


えっと。何時になったら計算終わりますか?

世の中C#の方が情報てんこもりだし。
C++/CLIでやるならC#もいいかも。

とはずっと思ってたんだが、んじゃぁちょっと計算速度比較でもしてみるかなあ。たいして長いコードじゃないし移植もめんどくなかろう。

  と思ったら大間違い。


private double[,] x = new double[2,2];

とかって!

三角関数ってCだとヘッダ引っ張ってくるけどC#ってどうなんだろう?


って、いちいち

Math.Sin()

かよ!!

つーか当たり前のようにC++/CLIでもMathクラスはあるな。


結果から言うと、俺がやりたい計算では大体C++/CLIの方が5倍位速い模様。

速度優先な計算で5倍も差があるからC#に浮気の線はさようなら。外部DLLとかって元気はないぜ。


それにしてもC#は全てがクラスなもんで、Cの面影無いなぁ。逆に言うならクラスをよくわかってない状態の俺は先にC#を勉強するのも一つの手かもしれんな。ま、やんないけど。



C++/CLIでもMathクラスに置き換えたらどうなるんかな?気が向いたらやってみるか。

セコム「工事に関わる人を馬鹿にしてる」でCM中止
 警備会社のセコムが視聴者に不快感を与えたとして、「ココセコム」のCMオンエア中止を決定した。このCMは、道を歩く人や電柱で作業をする人が突然ハゲタカやハイエナに変身するもの。.......... ≪続きを読む≫


宣伝は「環境の不安」「自らの安心感」の周知が効果的。セコムなんてストレートな分わかりやすい。このCMもそういうCMだな。


クレーム内容は腐っててどうでも良い話だが、こういうCMが社会不安を増長してもいるし逆にそういう世の中であることも想起されて結構辛い。


都会周辺ひとけの無い場所での夜の一人歩きとかそれだけで不審ってどうよ。まぁ都会はいい。田舎の鍵なんか掛けないようなところでも最近は掛けないとよそ者がやってきて暴行に及ぶ世の中だ。哀しいですよ。



ということをこの事件ではつらつら思うのさ。