PAT乙級 1006換個格式輸出整數 & 1004成績排名

1004

讀入 n(>0)名學生的姓名、學號、成績,分別輸出成績最高和成績最低學生的姓名和學號。

感覺寫的有點複雜了,但是主要是練習vector和class

#include <iostream>
#include<vector>
#include<string>
using namespace std;

class st//學生類
{
public:
	string name;
	string num;
	int grade;
};

st max(vector<st> s)//找最大值
{
	int max=0;
	st s1;
	for (int i = 0; i < s.size(); i++)
	{
		if (max < s[i].grade)
		{
			max = s[i].grade;
			s1 = s[i];
		}
	}
	return s1;
}

st min(vector<st> s)//找最小值
{
	int min = 100;
	st s1;
	for (int i = 0; i < s.size(); i++)
	{
		if (min > s[i].grade)
		{
			min = s[i].grade;
			s1 = s[i];
		}
	}
	return s1;
}


int main()
{
	vector<st> v;
	st s,smax,smin;
	int all = 0;
	cin >> all;
	for (int i = 0; i < all; i++)//輸入
	{
		cin >> s.name;
		cin >> s.num;
		cin >> s.grade;
		v.push_back(s);
	}
	smax = max(v);
	smin = min(v);
	cout << smax.name << " " << smax.num<<"\n";
	cout << smin.name << " " << smin.num;
	return 0;
}

 

 

 

1006換個格式輸出整數

讓我們用字母 B 來表示“百”、字母 S 表示“十”,用 12...n 來表示不爲零的個位數字 n(<10),換個格式來輸出任一個不超過 3 位的正整數。例如 234 應該被輸出爲 BBSSS1234,因爲它有 2 個“百”、3 個“十”、以及個位的 4。

輸入格式:

每個測試輸入包含 1 個測試用例,給出正整數 n(<1000)。

輸出格式:

每個測試用例的輸出佔一行,用規定的格式輸出 n。

分析:比較簡單的一道題,因爲最多隻到三位數,所以可以分三種情況考慮,活用除法和取餘即可

#include<iostream>
using namespace std;

int main()
{
	int n;
	cin >> n;
	if (n / 100 != 0)//三位數
	{
		int i = n / 100;
		while (i)
		{
			cout << "B";
			i--;
		}
		n = n % 100;
		if (n / 10 != 0)
		{
			i = n / 10;
			while (i)
			{
				cout << "S";
				i--;
			}
		}
		n = n % 10;
		if (n != 0)
		{
			for (int i1 = 1; i1 <= n; i1++)
				cout << i1;
		}
	}
	else if (n / 10 != 0)//兩位數
	{
		int i2 = n / 10;
		while (i2)
		{
			cout << "S";
			i2--;
		}
		n = n % 10;
		if (n != 0)
		{
			for (int i1 = 1; i1 <= n; i1++)
				cout << i1;
		}
	}
	else//一位數
	{
		for (int i3 = 1; i3 <= n; i3++)
			cout << i3;
	}
	return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章