第01章_プログラミング入門
アルゴリズムコンテスト入門クラシック_学習ノート_各例題とトレーニングソースファイル
第01章_プログラミング入門
Example_0108_変数交換_方法1_三変数法cpp
Example_0109_変数交換_方法2_第3の変数は利用する.cpp
Example_0111_ニワトリとウサギ数学の二元一次方程式cpp
Example_0113_三整数ソート_逐情列挙法cpp
Example_0114_三整数ソート_比较交换法cpp
Example_0115_三整数ソート_最值计算cpp
Exercise_0101_平均数(average)CPP版cpp
Exercise_0101_平均数(average)C语版cpp
Exercise_0102_温度(temperature).cpp
Exercise_0103_連続和(sum).cpp
Exercise_0104_正弦と余弦(sincos).cpp
Exercise_0105_距離(distance).cpp
Exercise_0106_偶数(odd)整数データ法を利用する.cpp
Exercise_0106_偶数(odd)余運アルゴリズムを求めるcpp
Exercise_0107_割引(discount).cpp
Exercise_0108_絶対値(abs).cpp
Exercise_0109_三角形(triangle).cpp
Exercise_0110_うるう年(leapYear).cpp
Thinking_0101_int型整数の最小値と最大値を算出する.cpp
第01章_プログラミング入門
Example_0108_変数交換_方法1_三変数法cpp
Example_0109_変数交換_方法2_第3の変数は利用する.cpp
Example_0111_ニワトリとウサギ数学の二元一次方程式cpp
Example_0113_三整数ソート_逐情列挙法cpp
Example_0114_三整数ソート_比较交换法cpp
Example_0115_三整数ソート_最值计算cpp
Exercise_0101_平均数(average)CPP版cpp
Exercise_0101_平均数(average)C语版cpp
Exercise_0102_温度(temperature).cpp
Exercise_0103_連続和(sum).cpp
Exercise_0104_正弦と余弦(sincos).cpp
Exercise_0105_距離(distance).cpp
Exercise_0106_偶数(odd)整数データ法を利用する.cpp
Exercise_0106_偶数(odd)余運アルゴリズムを求めるcpp
Exercise_0107_割引(discount).cpp
Exercise_0108_絶対値(abs).cpp
Exercise_0109_三角形(triangle).cpp
Exercise_0110_うるう年(leapYear).cpp
Thinking_0101_int型整数の最小値と最大値を算出する.cpp
// Example_0108_ _ 1_ .cpp
/**
* :
* , , 。
* : , 。
* : t = a; a , 。
* a b , a , b 。
* , b , , a t b 。
**/
#include <iostream>
int main()
{
int a, b, t;
std::cin >> a >> b;
t = a; //
a = b;
b = t; //
std::cout << a << b << std::endl;
return 0;
}
// Example_0109_ _ 2_ .cpp
/**
* : 。
* : , , 。
* : , , ;
* :
* : a = a + b;
* , a ;
* : b = a - b;
* , a, , b , a ,
* , a b 。
* : a = a - b;
* , a , b a , a b ,
* a b , , a b 。
**/
#include <iostream>
int main()
{
int a, b;
std::cin >> a >> b;
a = a + b; //
b = a - b;
a = a - b; //
std::cout << a << b << std::endl;
return 0;
}
// Example_0111_ _ .cpp
/**
* :
* :
* n, m。 n m 。
* , “No answer”( )。
* : 14 32
* : 12 2
* : 10 16
* : No answer
**/
/**
* :
* , a, b。
* : 4*b+2*a= m, a+b=n, :a=(4n-m)/2, b=n-a.
* : ,1: ,2: 。
**/
#include <iostream>
int main()
{
int n, m;
while(std::cin >> n >> m)
{
int a, b;
a = (4 * n - m) / 2;
b = n - a;
if (m % 2 != 0 || a < 0 || b < 0)
{
std::cout << "No answer
";
continue;
}
else
{
std::cout << a << " " << b << std::endl;
}
}
return 0;
}
// Example_0113_ _ .cpp
/**
* :
* : 3 , 。
* :26 78 12
* :12 26 78
**/
/**
* , , , 。
* , , 3*2*1+1 ,
* 3 , , , 。
* , 2 。
* , , 1 。
**/
#include <stdio.h>
int main()
{
int a, b, c;
scanf("%d%d%d", &a, &b, &c);
if (a <= b && b <= c) printf("%d %d %d
", a, b, c);
else if(a <= c && c <= b) printf("%d %d %d
", a, c, b);
else if(b <= c && c <= a) printf("%d %d %d
", b, c, a);
else if(b <= a && a <= c) printf("%d %d %d
", b, a, c);
else if(c <= a && a <= b) printf("%d %d %d
", c, a, b);
else if(c <= b && b <= a) printf("%d %d %d
", c, b, a);
return 0;
}
// Example_0114_ _ .cpp
/**
* :
* : 3 , 。
* :26 78 12
* :12 26 78
**/
/**
* , 。
* , , , , 。
* , , ( ) 。
* , ( ) , , 。
* , , ( )。
* , , , , , 。
**/
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int main()
{
int a, b, c, t;
cin >> a >> b >> c;
if (a > b) { t = a; a = b; b = t;}
if (a > c) { t = a; a = b; b = t;}
if (b > c) { t = a; a = b; b = t;}
cout << a << " " << b << " " << c << endl;
return 0;
}
// Example_0115_ _ .cpp
/**
* :
* : 3 , 。
* :26 78 12
* :12 26 78
**/
/**
* , 。
* , , , , , , 。
* , 。
* , ( ), , ;
* , ( ), , ;
* , , 。
**/
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int main()
{
int a, b, c;
int max, min, mid;
cin >> a >> b >> c;
max = a;
min = a;
if (b > max) max = b;
if (c > max) max = c;
if (b < min) min = b;
if (c < min) min = c;
mid = a + b + c - max - min;
cout << max << " " << mid << " " << min << endl;
return 0;
}
// Exercise_0101_ (average)_CPP .cpp
/**
* : 3 , , 3 。
**/
#include <iostream>
using std::cin;
using std::cout;
int main()
{
double a, b, c;
cin >> a >> b >> c;
cout.precision(3); // cout ,
cout << (a + b + c) / 3 << std::endl;
system("pause");
return 0;
}
// Exercise_0101_ (average)_C .cpp
/**
* : 3 , , 3 。
**/
#include <stdio.h>
int main()
{
double a, b, c;
// : lf double
scanf("%lf%lf%lf", &a, &b, &c);
double result = (a + b + c) / 3;
printf("%-.3lf
", result);
return 0;
}
// Exercise_0102_ (temperature).cpp
/**
* : f, c, 3 。
* :c = 5 * (f - 32) / 9;
**/
#include <iostream>
using std::cin;
using std::cout;
int main()
{
double f;
cin >> f;
cout.precision(3);
cout << 5 * (f - 32) / 9 << std::endl;
return 0;
}
// Exercise_0103_ (sum).cpp
/**
* : n, 1+2+...+n 。
**/
#include <iostream>
using std::cin;
using std::cout;
int main()
{
long n;
cin >> n;
long s = 0;
++n;
for ( int i = 1; i < n; ++i)
{
s += i;
}
cout << s << std::endl;
return 0;
}
// Exercise_0104_ (sincos).cpp
/**
* : n(n<360), n 、 。
* : 。
**/
#include <iostream>
#include <cmath>
using std::cin;
using std::cout;
int main()
{
double n;
cin >> n;
cout << sin(n) << " " << cos(n) << std::endl;
return 0;
}
// Exercise_0105_ (distance).cpp
/**
* : 4 x1, y1, x2, y2, (x1, y1) (x2, y2) 。
**/
#include <iostream>
#include <cmath>
using std::cin;
using std::cout;
int main()
{
float x1, x2, y1, y2;
cin >> x1 >> y1 >> x2 >> y2;
// abs
// pow
// sqrt
cout << sqrt(pow(abs(x1 - x2), 2) + pow(abs(y1 - y2), 2)) << std::endl;
return 0;
}
// Exercise_0106_ (odd)_ .cpp
/**
* : , 。
* , “yes”, “no”。
* : 。
**/
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int main()
{
int number;
cin >> number;
// , 2 , 2
if (number / 2 * 2 == number){
cout << "yes" << endl;
}
else{
cout << "no" << endl;
}
return 0;
}
// Exercise_0106_ (odd)_ .cpp
/**
* : , 。
* , “yes”, “no”。
* : 。
**/
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int main()
{
int number;
cin >> number;
// , 2
if (number % 2 == 0){
cout << "yes" << endl;
}
else{
cout << "no" << endl;
}
return 0;
}
// Exercise_0107_ (discount).cpp
/**
* : 95 , 300 , 。
* , ( : ), 。
**/
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int main()
{
const double discount = 0.85;
const double minConsume = 300.0;
const double singleConsume = 95.0;
double number;
cin >> number;
double sum = number * singleConsume;
if (minConsume < sum){
sum *= discount;
}
cout.precision(2);
cout.setf(std::ios_base::fixed, std::ios_base::floatfield);
cout << sum << endl;
return 0;
}
// Exercise_0108_ (abs).cpp
/**
* : , , 。
* math cmath
**/
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int main()
{
float number;
cin >> number;
if (0 > number){
number = 0 - number;
}
cout << number << endl;
return 0;
}
// Exercise_0109_ (triangle).cpp
/**
* : ( ), 。
* , “yes”, , “no”。
* , “not a triangle”。
**/
/**
* :
* , , , 。
* : 。
* : , 。
**/
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int main()
{
long a, b, c;
cin >> a >> b >> c;
//
if (a + b < c || a + c < b || b + c < a){
cout << "not a triangle" << endl;
return 0;
}
// , a
long max = a;
if (max < b){max = b; b = a; a = max;}
if (max < c){max = c; c = a; a = max;}
//
if (a * a == b * b + c * c){
cout << "yes" << endl;
}
else{
cout << "no" << endl;
}
return 0;
}
// Exercise_0110_ (leapYear).cpp
/**
* : , 。
* , “yes”, “no”。
**/
/**
* : : 365 , 366 。
* : ( 365 5 48 45.5 )
* ① 4 100 。( 2004 ,1901 )
* ② 400 。( 2000 ,1900 )
* ③ , 3200, 172800 。
* 172800 ,86400 ( 3200, 172800)( 365 5h48'45.5'' )。
* : 。
* ① 3 ( ), , 。
* ② 2 ( ), 。
* ③ 。
**/
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int main()
{
long year;
cin >> year;
//
if ( year > 172800){
if (0 == year % 3200){
cout << "yes" << endl;
}
else{
cout << "no" << endl;
}
}
//
else if(0 == year % 100){
if(0 == year % 400){
cout << "yes" << endl;
}
else{
cout << "no" << endl;
}
}
//
else{
if (0 == year % 4){
cout << "yes" << endl;
}
else{
cout << "no" << endl;
}
}
return 0;
}
// Thinking_0101_ int .cpp
/**
* :
* : int , 1( ), ,
* 1, 。
* : , int , 1( ), ,
* 1, 。
**/
#include <iostream>
int int_min()
{
int n = 0;
while(0 >= n)
{
--n;
}
++n;
return n;
}
int int_max()
{
int n = 0;
while(n >= 0)
{
++n;
}
--n;
return n;
}
int main()
{
int min = int_min();
int max = int_max();
std::cout << min << " " << max << std::endl;
system("pause");
return 0;
}