判断是否是数字:
i >= "0" && i<="9"
判断是否是数字:
i >= "0" && i<="9"
//✋假设有个隧道,隧道以字符 ‘#’ 结束,挖矿的过程中,会遇到钻⽯ ‘*’ 和美⾦ ‘1’ ~ ‘9’ ,
//让矿⼯⼩六挖到隧道的尽头,假设每个钻⽯价值500美⾦,统计⼩六挖到了价值多少美⾦的收获?
//样例输⼊ ka4d*s6kkl8s*d9fyo#
//样例输出 1027
char a; //定义字符‘a’
int r = 0; //定义最后的金额为r
do
{
a = (char)Console.Read(); //获取用户输入的字符
if (a=='*') //判断输入的是否为‘*’
{
r += 500; //输入的为‘*’则r+500
}
else if (a >= '0' && a <= '9') //判断输入的是否为字符数字
{
int temp = a - '0'; //字符数字减去字符‘0’ 得到的就是本身数值
r = r + temp; //将结果相加
}
} while (a != '#'); //当输入的是‘#’ 结束循环
Console.WriteLine(r);
Console.ReadKey();
using System;
namespace _024_字符读取和编程题
{
class Program
{
static void Main(string[] args)
{
//char c;// '0' -- 55 '9' --
//int sum = 0;
//do
//{
// c = (char)Console.Read();
// if (c >= '0' && c <= '9')
// {
// int number = c - '0';
// sum += number;
// }
// else if (c == '*')
// {
// sum += 500;
// }
//} while (c != '#');
//Console.WriteLine(sum);
//31dj*31#
//508
//int n = Convert.ToInt32(Console.ReadLine());
//int count = 0;
//string str = "";
//for (int i = 1; i <= n; i++)
//{
// if (n % i == 0)
// {
// count++;
// str += i + " ";
// }
//}
//Console.WriteLine(count);
//Console.WriteLine(str);
//9
//1 3 9
int n = Convert.ToInt32(Console.ReadLine());
int count = 0;
for (int i = 1; i <= n; i++)
{
if (n % i == 0)
{
count++;
}
}
if (count == 2)
{
Console.WriteLine("yes");
}
else
{
Console.WriteLine("no");
}
}
}
}
char c;
int sum = 0;
do
{
c = (char)Console.Read();
if (c >= '0' & c <= '9')
{
int num = c - '0';
sum += num;
}
else if(c=='*')
{
sum += 500;
}
} while (c!='#');
Console.WriteLine(sum);
int n = Convert.ToInt32(Console.ReadLine());
int sum = 0;
for(int i = 1; i < 1000000; i++)
{
if (n % i == 0)
{
sum += 1;
}
}
if (sum == 2)
{
Console.WriteLine("yes");
}
else
{
Console.WriteLine("no");
}
int num = new Random().Next(1, 1000001);
Console.WriteLine("输入 -> {0}", num);
bool isPrimeNum = true;
for (int i = 2; i < num; i++)
{
if (num % i == 0 && num != i)
{
isPrimeNum = false;
break;
}
}
Console.WriteLine("输出 -> {0}", isPrimeNum && num != 1 ? "yes" : "no");
因数是可以把这个数整除的数,任何一个非1正整数都至少有两个因数1和它本身。
只有1和自身这两个因数的非1正整数称为质数(素数)
ka4d*s6kkl8s*d9
第六十八课 编程题(因数和质数)
1. 假设有个隧道,隧道以字符‘#’结束。挖矿的过程中,会遇到钻石‘*’和美金‘1’~‘9’,让矿工小六挖到隧道的尽头,假设每个钻石价值500美金,统计小六挖到了价值多少美金的收获。
样例输入:ka4d*s6kkl8s*d9fyo#
样例输出:1027
char c;
int number = 0;
int temp = 0;
int he = 0;
do
{
c = (char)Console.Read();
if (c >= '0' && c <= '9')
{
int num = c - '0';
number += num;
}
if (c == '*')
{
temp += 500;
}
} while (c != '#');
he += (number + temp);
Console.WriteLine(he);
还是练练do...while吧,嘿嘿!
修改:
char c;
int number = 0;
int he = 0;
do
{
c = (char)Console.Read();
if (c >= '0' && c <= '9')
{
int num = c - '0';
number += num;
}else
if (c == '*')
{
number += 500;
}
} while (c != '#');
Console.WriteLine(number);
number在语句执行中可以反复使用,不用在另定义一个变量了。if语句的使用时,如果只有两个分支条件,最好使用if...else if。
2. 输入一个整数,输出该整数的因数个数和所有因数,输入的整数大于0,小于100000
样例输入9
3
1 3 9
int n= Convert.ToInt32(Console.ReadLine());
int temp = 0;
for (int i = 1; i <= 100000; i++)
{
if (n % i == 0)
{
Console.Write(i + " ");
temp += 1;
}
}
Console.WriteLine();
Console.WriteLine(temp);
因为先输出的因数后输出的因数个数,这样的方法不符合题中的要求。
修改为:
int n= Convert.ToInt32(Console.ReadLine());
string cc = "";
int temp = 0;
for (int i = 1; i <= 100000; i++)
{
if (n % i == 0)
{
cc += i + " ";
temp += 1;
}
}
Console.WriteLine(temp);
Console.WriteLine(cc);
其实我一直有个认识误区,种以为用字符串来输出算是偏门的方式,现在理解了,只要编译简单,逻辑合理,结果输出无误,那么任何方法都可以用,它们都一样。
3. 输入一个正整数,判断该数是否是质数,输入的数字大于0,小于100000.
如果为质数输出yes,如果不是则输出no。
样例输入 103
输出yes
nt n = Convert.ToInt32(Console.ReadLine());
int temp = 0;
for(int i = 1; i <= 100000; i++)
{
if (n % i == 0)
{
temp++;
}
}
if (temp == 2)
{
Console.Write("yes");
}
else
{
Console.Write("no");
}