✋编程题
⼀个球从某⼀⾼度落下来,每次落地后反跳回原来⾼度的⼀半,再落下。
编程计算球第10次反弹多⾼?在第10次落地时,共经过多少⽶?
输⼊球的初始⾼度,输出反弹多⾼,和经过了多少⽶。
c# int n = Convert.ToInt32(Console.ReadLine());
double high = n;
for(int i = 0; i < 10; i++)
{
high /= 2;
}
Console.WriteLine("第10次落地后会反弹的高度是:" + high);
//1 --- 2n
//2 --- n
//3 --- n/2
//10 --- d(9)/2
double distance = 2 * n;
double sum = n;
for (int i = 0; i < 9; i++)
{
distance /= 2;
sum += distance;
}
Console.WriteLine("第10次落地后经过了多少米是:" + sum);
✋编程题
输⼊⼀个整数a,和⼀个正整数n,计算乘⽅ a的n次⽅。
c# int a = Convert.ToInt32(Console.ReadLine());
int n = Convert.ToInt32(Console.ReadLine());
int result = 1;
for(int i = 0; i < n; i++)
{
result *= a; // 1 *a *a *a
}
Console.WriteLine(result);
✋编程题
输⼊整数n,输出n的阶乘。
c# // 6 1*2*3*4*5*6
int n = Convert.ToInt32(Console.ReadLine());
int result = 1;
for(int i = 1; i <= n; i++)
{
result *= i;
}
Console.WriteLine(result);
✋编程题
输⼊q和n,求下⾯公式的结果。
c# int q = Convert.ToInt32(Console.ReadLine());
int n = Convert.ToInt32(Console.ReadLine());
int temp = 1;
int sum = 1;
for (int i = 1; i <= n; i++)
{
// qn
temp *= q;
sum += temp;
}
//q 3 n = 3
// 1+ 3+ 9 +27 =40
Console.WriteLine(sum);
✋编程题
已知:Sn = 1 + 1/2 + 1/3 + ... + 1/n。 显然对于任意⼀个整数k,当n⾜够⼤的时候,Sn⼤于K。
现输⼊⼀个整数K(1≤K≤15),要求计算出⼀个最⼩的n,使得Sn>K。
输⼊⼀个整数K,输出⼀个整数n。
样例输⼊1,样例输出2
c# int k = Convert.ToInt32(Console.ReadLine());
// n 1
double sn = 0;
int n = 1;
while (sn <= k)
{
sn += 1.0 / n;
n++;
}
Console.WriteLine(n-1);
✋编程题
我国现有x亿⼈⼝,按照每年0.1%的增⻓速度,n年后将有多少⼈?
c# 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(0到20之间的整数)。约翰现有总值为M的钱(100到1,000,000之
间的整数)。他清楚地知道⾃⼰要投资Y年(范围0到400)。请帮助他计算最终他会有多少钱,
并输出它的整数部分。数据保证输出结果在32位有符号整数范围内。
输⼊三个整数 R,M,Y,输出整数,即最终拥有多少钱。
输⼊
5
5000
4
输出
6077
c# // 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);
✋编程题
编写⼀个程序,打印出所有的“⽔仙花数”,所谓“⽔仙花数”是指⼀个三位数,其各位数字⽴⽅等
于该数本⾝。例如153=111+555+333,所以153是“⽔仙花数”。
c# for(int i = 100; i <= 999; i++)
{
int ge = i % 10;
int shi = (i / 10) % 10;
int bai = i / 100;
if( i==ge*ge*ge+shi*shi*shi+bai*bai*bai)
{
Console.WriteLine(i);
}
}
✋编程题
输⼊任意⼀个位数未知的整数,输出这个数每⼀位上的数字。输出的时候,从个位开始输出,每
输出⼀个数字换⼀⾏。
输⼊:3432
输出:
2
3
4
3
c# int n = Convert.ToInt32(Console.ReadLine());
while (n ≠ 0)
{
int i=n% 10;
Console.WriteLine(i);
n = n / 10;
}
✋编程题
随机输⼊⼀个位数未知的整数,去除这个整数各个位上的0,形成新的数,并输出。
输⼊的数字n⼤于0,⼩于1000000。
样例输⼊ 20603 样例输出 263
c# int n = Convert.ToInt32(Console.ReadLine());
int sum = 0;
int cheng = 1;// 1 10 100 1000
while (n ≠ 0)
{
int i = n % 10; //i就是遍历各个位上的数字
if (i ≠ 0)
{
i *= cheng;// ge 1*
sum += i;
cheng *= 10;
}
n = n / 10;
}
Console.WriteLine(sum);
✋编程题
随机输⼊⼀个整数num,输出⼀个新的数,新数恰好与原数每⼀位上的数字相反。(如果原数末
尾有多个零,输出的新数⾼位不含0)
样例输⼊ 8736 样例输出 6378
样例输⼊2300 样例输出 32
c# int n = Convert.ToInt32(Console.ReadLine());
// 标志位,标志是否达到了某个条件
bool yudao = false;// 默认还没有遇到第一个非0
while (n ≠ 0)//从低位到高位遍历
{
int i = n % 10; //23407800 i = 0 0 8 7 0 4 3 2
//判断是否遇到了第一个非0数字
//已经遇到了第一个非0数字
//不需要去掉0了
//还没有遇到第一个非0数字
//去掉
if (yudao = true)//还没有遇到第一个非0数字
{
if (i ≠ 0)//i=8
{
Console.Write(i);
yudao = true;
}
} else //i=7
{
Console.Write(i);
}
n = n / 10;
}
✋编程题
回⽂数指正序(从左到右)和倒序(从右到左)读都是⼀样的整数。输⼊⼀个数,判断是否是回
⽂数。输⼊的整数⼤于0,⼩于1000000。如果是回⽂输出yes,不是输出no。
样例输⼊ 2397 输出no
样例输⼊ 2992 样例输出yes
c# int n = Convert.ToInt32(Console.ReadLine());
int tempN = n;
int number = 0;
// 3617
// 7 1 6 3
// 7*10 10
//71*10 710
//7160
// 7163
while (tempN ≠ 0)//从低位到高位
{
int i = tempN % 10;
number *= 10;
number += i;
tempN = tempN / 10;
}
if (number == n)
{
Console.WriteLine("yes");
} else
{
Console.WriteLine("no");
}
✋编程题
数字和字符混合在⼀起了,作为⼀个优秀的挖掘⼈员,把输⼊的数字挖出来,并计算这些数字的
和,并输出。输⼊以@作为结束。
样例输⼊ 23a34b34@
样例输出 19
c# char c; // '0' -- 55 '9' --
int sum = 0;
do
{
c = (char)Console.Read();
if (c >= '0' && c <= '9')
{
int number = c - '0';
sum += number;
}
} while (c ≠ '@');
Console.Write(sum);