这里的题目再做一遍
这里的题目再做一遍
using System;
namespace _022_编程题
{
class Program
{
static void Main(string[] args)
{
//int k = Convert.ToInt32(Console.ReadLine());
//// n 1
//double sn = 0;
//int n = 0;
//while (sn <= k)
//{
// n++;
// sn += 1.0 / n;
//}
//Console.WriteLine(n);
////k=2
////1+1/2+1/3+1/4=2.08333
//double x = Convert.ToInt32(Console.ReadLine());
//int n = Convert.ToInt32(Console.ReadLine());
//for (int i = 0; i < n; i++)
//{
// x *= 1.001;
//}
//Console.WriteLine(x);
// R M Y
int r = Convert.ToInt32(Console.ReadLine());
int m = Convert.ToInt32(Console.ReadLine());
int y = Convert.ToInt32(Console.ReadLine());
for (int i = 0; i < y; i++)
{
m = (int)(m * ((r / 100.0) + 1));
}
Console.WriteLine(m);
}
}
}
不学了,我要去学投资了(doge)
1+1/2+3/1
for
小类型可赋值给大类型
double i+=1.0/n(注意要加小数点才生效)
第六十三课 编程题(复利的威力)
1. 已知sn=1+1/2+1/3+......1/n,显然对于任意一个整数k,当n足够大的时候,sn大于k。现输入一个整数k(1<=k<=15),要求计算出一个最小的n,使得sn>k。输入一个整数k,输出一个整数n。
样例:输入1,输出2.
int k= Convert.ToInt32(Console.ReadLine());
double sn = 0;
int n = 0;
if (1 <= k && k <= 15)
{
while (sn <= k)
{
n++;
sn += 1.0 / n;
}
Console.WriteLine(n);
}
else
{
Console.WriteLine("您的输入错误");
}
注:
难点在于n的赋值和n++的位置,放在前面就要赋值为0;放在后面就要提前赋值为1,那么输出的时候n的值就要减去1。
2. 我国现有14亿人口,按照每年0.1%的增长速度,n年后将有多少人呢?
int n =Convert.ToInt32(Console.ReadLine());
double x = Convert.ToInt32(Console.ReadLine());
for(int i = 1; i <= n; i++)
{
x += x * 0.001;
}
Console.WriteLine(x);
修改成老师的答案:
int n =Convert.ToInt32(Console.ReadLine());
double x = Convert.ToInt32(Console.ReadLine());
for(int i = 1; i <= n; i++)
{
x *= 1.001;
}
Console.WriteLine(x);
我终于知道人口增长统计表里的小数是怎么来的了,曾经还吐槽人家人口怎么还能有小数?怎么还能有半个人?唉!
3. 农夫约翰在去年赚了一大笔钱!他想要把这些钱用于投资,并对自己能得到多少收益感到好奇。已知投资的复合年利率为R(0到20之间的整数)。约翰现有总值为M的钱(100到1000000之间的整数)。他清楚地知道自己要投资y年(范围0到400)。请帮助他计算最终他会有多少钱。并输出它的整数部分。
数据保证输出结果在32位有符号整数范围内。
输入三个整数r、m、y,输出整数,即最终拥有多少钱。
Console.WriteLine("输入投资复合利率值");
double r = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("输入投资金额");
double temp = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("输入投资年数");
int y = Convert.ToInt32(Console.ReadLine());
if (0 < r && r <= 20 && 100 < temp && temp < 1000000 && 0 < y && y < 400)
{
for(int i = 0; i < y; i++)
{
temp += temp * (r / 100.0);
}
int m = (int)temp;
Console.WriteLine("利率为:"+r+"%"+" "+"收益金额为:"+m+" "+"投资年数为:"+y+"年");
}
else
{
Console.WriteLine("输入正确数值");
改成老师的答案:
Console.WriteLine("输入投资复合利率值");
double r = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("输入投资金额");
double m = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("输入投资年数");
int y = Convert.ToInt32(Console.ReadLine());
if (0 < r && r <= 20 && 100 < m && m < 1000000 && 0 < y && y < 400)
{
for(int i = 0; i < y; i++)
{
m = (int)(m+(m * (r / 100.0)));
}
Console.WriteLine("利率为:"+r+"%"+" "+"收益金额为:"+m+" "+"投资年数为:"+y+"年");
}
else
{
Console.WriteLine("输入正确数值");