T1057——多边形内角和
代码如下——
#include<iostream>
using namespace std;
int main()
{
int n; cin >> n;
int sum = (n - 2) * 180;
for (int i = 1; i < n; ++i)
{
int temp; cin >> temp;
sum -= temp;
}
cout << sum << endl;
}
如果用数组怎么解呢——
#include<iostream>
using namespace std;
int main()
{
int n; cin >> n;
int arr[25];
int sum = (n - 2) * 180;
for (int i = 1; i < n; ++i)
{
cin >> arr[i];
sum -= arr[i];
}
cout << sum << endl;
}
T1077——数字反转
代码如下——
#include <iostream>
using namespace std;
int main()
{
int a, b = 0;
cin >> a;
for (;;)
{
if (a == 0)
{
cout << b;
break;
}
else
{
int c;
c = a % 10;
a = a / 10;
b = b * 10;
b = b + c;
}
}
}
如果使用数组怎么实现呢——
#include <iostream>
#include<string.h>
using namespace std;
char arr[205];
int main(void)
{
scanf("%s", arr);
int strL = strlen(arr);
int start;
if (strL == 1 && arr[0] == '0') cout << 0 << endl;
if (strL == 2 && arr[1] == '0') cout << "-0" << endl;
if (arr[0] == '-')
{
int i = 1, j = strL - 1;
start = i;
while (i < j)
{
char temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
i++; j--;
}
while (arr[start] == '0') start++;
cout << "-";
for (int k = start; k < strL; ++k) cout << arr[k];
}
else
{
int i = 0, j = strL-1;
start = i;
while (i < j)
{
char temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
i++; j--;
}
while (arr[start] == '0') start++;
for (int k = start; k < strL; ++k) cout << arr[k];
}
}
难崩
T1134——图像相似度******矩阵
代码如下——
#include <iostream>
using namespace std;
int arr[105][105];
int brr[105][105];
int main(void)
{
int m, n; cin >> m >> n;
for (int i=0; i < m; ++i)
{
for (int j=0; j < n; ++j)
{
cin >> arr[i][j];
}
}
for (int i=0; i < m; ++i)
{
for (int j=0; j < n; ++j)
{
cin >> brr[i][j];
}
}
double num = 0;
for (int i=0; i < m; ++i)
{
for (int j=0; j < n; ++j)
{
if (arr[i][j] == brr[i][j])
{
num++;
}
}
}
printf("%.2lf", (num / (n * m)) * 100);//域宽
}
T1138——变换的矩阵
代码如下——
难崩打了半小时
#include <iostream>
using namespace std;
char arr[15][15];
char brr[15][15];
int main(void)
{
int N; cin >> N;
for (int i = 0; i < N; ++i)
{
for (int j = 0; j < N; ++j)
{
cin >> arr[i][j];
}
}
bool flag4 = true;
for (int i = 0; i < N; ++i)
{
for (int j = 0; j < N; ++j)
{
cin >> brr[i][j];
if (arr[i][j] != brr[i][j])
{
flag4 = false;
}
}
}
if (flag4)
{
cout << 4 << endl;
return 0;
}
bool flag1 = true;
for (int i = 0, ibrr = 0; i < N; ++i, ibrr++)
{
for (int j = N - 1, jbrr = 0; j >= 0; --j, jbrr++)
{
if (arr[j][i] != brr[ibrr][jbrr])
{
flag1 = false;
}
}
}
if (flag1 == true)
{
cout << 1 << endl;
return 0;
}
bool flag2 = true;
for (int i = N - 1, ibrr = 0; i >= 0; --i, ibrr++)
{
for (int j = 0, jbrr = 0; j < N; ++j, jbrr++)
{
if (arr[j][i] != brr[ibrr][jbrr])
{
flag2 = false;
}
}
}
if (flag2 == true)
{
cout << 2 << endl;
return 0;
}
bool flag3 = true;
int x = N / 2;
int y = N / 2;
for (int i = 0; i < N; ++i)
{
for (int j = 0; j < N; ++j)
{
int deltaX = x - i;
int deltaY = y - j;
if (arr[deltaX + x][deltaY + y] != brr[i][j])
{
flag3 = false;
}
}
}
if (flag3 == true)
{
cout << 3 << endl;
return 0;
}
else
{
cout << 5 << endl;
return 0;
}
return 0;
}
矩阵