北京地铁票每月的打折规则为:本次乘车前总消费不足 100 元本次不打折,满 100 元不足 150 元本次打8 折,满 150 元不足 400 元本次打 5 折,已满 400 元后本次不打折,已知 wls 每次出行的原票价,请问实际的花费是多少?
Input
输入包含两行。第一行一个整数 n 代表 wls 将要出行的次数。第二行 n 个正整数, ai 代表每次出行的票的原价,wls 是按照输入顺序依次出行的。
0 ≤ n ≤ 1, 000
0 < ai ≤ 1, 000
Output
一行一个数,代表实际的花费,保留小数点后两位小数。
Sample Input
3
100 20 20
Sample Output
132.00
#include
using namespace std;
const int maxn = 1005;
double a[maxn];
int main()
{
int n;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
double sum =a[0];
for (int i = 1; i < n; i++)
{
if (sum >= 100 && sum <= 150)
{
sum += a[i] * 0.8;
}
if (sum >= 150 && sum <400)
{
sum += a[i] * 0.5;
}
if (sum < 100 || sum >= 400)
{
sum += a[i];
}
}
printf("%.2f\n", sum);
return 0;
}
wls 有一个整数 nn,他想将 1 −n 这 n 个数字分成两组,每一组至少有一个数,并且使得两组数字的和的最大公约数最大,请输出最大的最大公约数。
Input
输入一行一个整数 nn。
2 ≤ n≤ 1, 000, 000, 000
Output
输出一行一个整数表示答案。
Sample Input
6
Sample Output
7
#include
#include
using namespace std;
int main()
{
long long n;
long long sum1=0;
long long sum2=0;
cin >> n;
long long sum = n*(n+1) / 2;
// cout << sum << endl;
long long len;
for (int i = 2; i <= n; i++)
{
if (sum%i==0)
{
len = sum/i;
break;
}
}
cout <<len<< endl;
return 0;
}
在半径为 1 的圆上有 n 个点,它们也是圆的 n等分点,将每个相邻的 n 等分点相连,组成了一个正 n边形,现在你可以在圆上再增加一个点,使得新的 n + 1 边形的面积最大,请输出最大面积。
Input
输入有多组(不超过 100 组)。
每组数据一行一个整数 nn 代表点的数量。
3 ≤ n ≤ 100
Output
每组数据输出一行一个数表示加上一个点后的最大面积,结果保留6位小数。
Sample Input
3
Sample Output
1.732051
#include
#include
using namespace std;
#define PI acos(-1)
int main()
{
int n;
while (cin >> n)
{
double r = 1;
double ans, x;
ans = (n - 1)*(r*r*sin((180.0 / n)*(PI / 180.0))*cos((180.0 / n)*(PI / 180.0))) + r*r*sin((180.0 / n)*(PI / 180.0));//度数乘以pi/180
printf("%.6f\n", ans);
}
return 0;
}
一块七巧板有 7 块,现在 wls 想再在七巧板上加 nn 条直线将七巧板切分并且使得切出来的块最多,请问最多能有多少块?
Input
输入有多组(不超过 100, 000组)。
每组一行一个正整数 nn。
0 ≤ nn ≤ 1, 000, 000, 000
Output
每组输出一行一个数代表答案。
Sample Input
1
Sample Output
13
#include
using namespace std;
int main()
{
long long n;
while (cin >> n)
{
cout <<7+(11+n)*(n)/2<< endl;
}
return 0;
}
wls 有一个 n ; m 的网格,他现在想用俄罗斯方块中的"凸"型密铺它。
一个"凸"型占四个格子,你可以随意把它调成上下左右四个方向中的一个。
密铺的定义是网格中任意一个格子被且只被一个"凸"型铺到,并且这些"凸"型不能铺出网格的边界。
随意输出一组解即可。
Input
一行两个整数 n, m。
1 ≤ n, m ≤ 12
Output
无解输出 no response。
如果有解,输出 n 行,每行 m 个字符。你只能使用 1, 2, 3, 4 这四个字符,由同 一字符组成的四连通块被视为一个"凸"型。
如果有多组解,那么输出任意一种即可。
Sample Input
4 4
Sample Output
1113
2133
2243
2444
#include
using namespace std;
const int maxn = 15;
int a[4][4] = { { 1, 1, 1, 3 }, { 2, 1, 3, 3 }, { 2, 2, 4, 3 }, { 2, 4, 4, 4 } };
int main()
{
int n, m;
while (cin >> n >> m)
{
if (n % 4 != 0 || m % 4 != 0)
{
cout << "no response" << endl;
continue;
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
cout << a[i % 4][j % 4];
}
cout << endl;
}
}
return 0;
}