「AOJ再挑戦問0~4」の編集履歴(バックアップ)一覧に戻る

AOJ再挑戦問0~4 - (2014/01/11 (土) 03:23:41) のソース

*問0 QQ
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0000&lang=jp
九九のリストを出力する問題。
**解法
簡単なので特に書くことなし。

 #include<stdio.h>
 int main(){
 	int a,b;
          for(int a=1;a<=9;a++){
 		for(int b=1;b<=9;b++){
 			printf("%dx%d=%d\n",a,b,a*b);
 		}
 	}
 	return 0;
 }

*問1 List of Top 3 Hills
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0001
山の高さを高い順に3つ出力する問題。

**解法
簡単なので読み込んでSortするだけです。

 #include<stdio.h>
 #include<algorithm> 
 int main(){
 	int hs[10];
 	for(int i=0;i<10;scanf("%d",&hs[i++]));
	std::sort(hs,hs+10);
 	printf("%d\n%d\n%d\n",hs[9],hs[8],hs[7]);
 }


*問2 Digit Number
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0002
自然数a+bの桁数を出力する問題。

解法
足してlogとって1を足せば桁数です。

 #include<stdio.h>
 #include<math.h>
 int main(){
  	int a,b;
 	while(scanf("%d %d",&a,&b)!=EOF){
 		printf("%d\n",(int)log10(a+b)+1);
 	}
 }


*問3 Is it a Right Triangle?
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0003
3角形の3辺の長さが与えられるので直角三角形ならYESでないならNOと出力する問題。

解法
3平方の定理そのままですね。

 #include<stdio.h>
 
 int main(){
  	int a,b,c,n;
 	scanf("%d",&n);
 	while(n--){
 		scanf("%d %d %d",&a,&b,&c);
  		a=a*a;
 		b=b*b;
 		c=c*c;
 		printf("%s\n",(a+b==c || b+c==a || a+c==b)?"YES":"NO");
 	}
 }


*問4 Simultaneous Equation
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0004
2*2の行列演算を解く問題。

解法
高校数学に書いてある定義通り計算。
hintをちゃんと通るように-0.000を0.000にする記述を追加。

 #include<stdio.h>
 
 int main(){
 	double a,b,c,d,e,f,r,ansx,ansy;
	while(scanf("%lf %lf %lf %lf %lf %lf",&a,&b,&c,&d,&e,&f)!=EOF){
		r=a*e-d*b;
		ansx=(e*c-b*f)/r;
		ansy=(-d*c+a*f)/r;
		if(ansx==0)ansx=0;
		if(ansy==0)ansy=0;
		printf("%.3lf %.3lf\n",ansx,ansy);
	}
 }