⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1882.cpp

📁 这是哈尔滨工业大学acmOJ的源代码
💻 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 + -