请教C#的两条题目

来源:百度知道 编辑:UC知道 时间:2024/06/08 04:19:05
1.第五套人民币(不包括角、分)共有以下6中棉值的纸币:1元、5元、10元、20元、50元、100元。自定义方法CalculateMoney,计算要用这几种纸币组成金额“X”元,至少需要多少张纸币。
2.艾编程同学到银行办理定期存款,他选择了1年定期,每年到期后本息转存的方式,1年定期的利率为1.98%。自定义方法CalculateSaving,通过输入的存款金额和存期,计算到期后的本息总额。要求方法有两个参数,一个是存期(year),采用值传递方式,另一个是存款金额(saving),按引用方式传递。

class Program {
static void Main(string[] args) {
Program p = new Program();
// 第一题
int n = 1234;
Console.WriteLine("组成{0}元最少需要{1}张货币", n, p.CalculateMoney(n));
// 第二题
int year = 3;
double saving = 100;
Console.WriteLine("将{0}元存{1}年后, 本息总额是{2}元", saving, year, p.CalculateSaving(year, ref saving));
}

int CalculateMoney(int n) {
int result = 0;
int tmp;

if (n != 0 && (tmp = n / 100) > 0) {
result += tmp;
n -= tmp * 100;
}
if (n != 0 && (tmp = n / 50) > 0) {
result += tmp;
n -= tmp * 50;
}
if (n != 0 && (tmp = n / 20) > 0) {
result += tmp;
n -= tmp * 20;
}
if (n != 0 && (tmp = n / 10) > 0) {
result += tmp;
n -= tmp * 10;
}
if (n != 0 && (tmp = n / 5) > 0) {
result += tmp;
n -= tmp * 5;
}
if (n != 0 && (tmp = n / 1) > 0) {
result += t