第1题
这题很简单,因为输入的三个数都是十的整数倍,所以计算结果不会有小数。
#include <cstdio>
int main()
{
FILE *fp1 = fopen("score.in", "r");
FILE *fp2 = fopen("score.out", "w");
int a, b, c, ans;
fscanf(fp1, "%d %d %d", &a, &b, &c);
ans = a / 5 + b * 3 / 10 + c / 2;
fprintf(fp2, "%d\n", ans);
fclose(fp1);
fclose(fp2);
return 0;
}
第2题
(1)n <= 1000,则用冒泡排序的话,最多计算次数为1000 * 1000 = 100万,复杂度没有问题。
(2)所有的图书编码和需求码均不超过1000万,用整型存储即可。
#include<stdio.h>
#include<math.h>
//using namespace std;
int n,q;
int a[1010];
void bubble_sort(int a[], int n)
{
for(int round = 0; round < n - 1; round++)
{
for(int pos = 0; pos < n - round - 1; pos++)
{
if(a[pos] > a[pos + 1])
{
a[pos] ^= a[pos + 1];
a[pos + 1] ^= a[pos];
a[pos] ^= a[pos + 1];
}
}
}
}
int main()
{
freopen ("librarian.in", "r", stdin);
freopen ("librarian.out", "w", stdout);
scanf ("%d %d", &n, &q);
for (int i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
bubble_sort(a, n);
for (int i = 0; i < q; i++)
{
int l, x;
bool flag = 0;
scanf("%d %d", &l, &x);
字符串长度17模式串长度 int t = pow(10, l); //计算t,即末尾0的个数
for(int i = 0; i < n; i++)
{
if (0 == (a[i] - x) % t) //重点:若x是a[i]的尾数,那么(a[i]-x)%t==0
{
flag = 1;
printf("%d\n", a[i]);
break;
}
}
if (!flag)
{
printf("-1\n");
}
}
return 0;
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论