📄 1882.cpp
字号:
/* This Code is Submitted by wywcgs for Problem 1882 on 2005-10-02 at 17:24:36 */
#include <cstdio>
int getlen(long);
long gcd(long, long);
int main()
{
int t = 1;
int i, p, lenN, lenD, space, q;
long sum, averI, averF, n, m;
bool pos;
while(scanf("%ld", &n) == 1) {
if(n == 0) {
return 0;
} else {
sum = 0;
for(i = 0; i < n; i++) {
scanf("%d", &p);
sum += p;
}
averI = sum / n;
averF = sum % n;
printf("Case %d:\n", t);
t++;
if(averF == 0) {
if(averI >= 0) {
printf("%ld\n", averI);
} else {
printf("-% ld\n", -averI);
}
} else {
space = 0;
if(averI < 0) {
pos = false;
averF = -averF;
averI = -averI;
space += 2;
} else if(averI == 0 && averF < 0) {
pos = false;
averF = -averF;
space += 2;
} else {
pos = true;
}
space += getlen(averI);
m = gcd(n, averF);
n /= m;
averF /= m;
lenD = getlen(n);
lenN = getlen(averF);
q = lenD - lenN + space;
for(i = 0; i < q; i++) {
putchar(' ');
}
printf("%ld\n", averF);
if(!pos) {
printf("- ");
}
if(averI != 0) {
printf("%ld", averI);
}
for(i = 0; i < lenD; i++) {
putchar('-');
}
putchar('\n');
for(i = 0; i < space; i++) {
putchar(' ');
}
printf("%ld\n", n);
}
}
}
return 0;
}
int getlen(long a)
{
int i;
for(i = 0; a > 0; i++) {
a /= 10;
}
return i;
}
long gcd(long a, long b)
{
if(b == 1) {
return 1;
} else if(a % b == 0) {
return b;
} else {
return gcd(b, a%b);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -