1.别样水仙花数-Nv Number:把任意的数字,从中间拆分成两个数字,比如1461 可以拆分成(1和461),(14和61),(146和1),如果所有拆分后的乘积之和等于自身,则是一个Nv Number。
例如:
655 = 6 * 55 + 65 * 5
1461 = 1461 + 1461 + 146*1
求出 5位数中的所有Nv Number。
using System;
namespace _1
{
class Program
{
static bool NvNumber(int n)
{
int s = 0, t = 0, f = 1, m = n;
while (n / f > 0)
f = f * 10;
f /= 10;
while (n > 0 && f >= 10)
{
t = t * 10 + n / f;
n %= f;
f /= 10;
s += t * n;
}
return s == m;
}
static void Main(string[] args)
{
for (int i = 10000; i <= 99999; i++)
{
if (NvNumber(i))
Console.Write(i + " ");
}
Console.ReadLine();
}
}
}
2.实现一个简单计算器,实现两个数的“加减乘除”运算,用户从键盘输入算式“操作数1运算符操作数2”,计算并输出表达式的值,如果输入的运算符号不包括在(+、-、、/)范围内,输出“Invalid operation!”。当运算符为除法运算,即“/”时。如果操作数2等于0.0,则输出“Wrong!Division by zero!”
输入描述:
多组输入,一行,操作数1运算符操作数2(其中运算符号包括四种:+、-、、/)。
输出描述:
针对每组输入,输出为一行。
如果操作数和运算符号均合法,则输出一个表达式,操作数1运算符操作数2=运算结果,各数小数点后均保留4位,数和符号之间没有空格。
如果输入的运算符号不包括在(+、-、*、/)范围内,输出“Invalid operation!”。当运算符为除法运算,即“/”时。
如果操作数2等于0.0,则输出“Wrong!Division by zero!”。
输入示例:
1.0+3.0
1.0;4.0
44.0/0.0
输出示例:
1.0000+3.0000=4.0000
Invalid operation!
Wrong!Division by zero!
using System;
using System.Collections.Generic;
namespace _1
{
class Program
{
static bool Calculator(string s)
{
char[] a = s.ToCharArray();
char b = '0';
for (int i = 0; i < a.Length; i++)
{
if (a[i] == '+' || a[i] == '-' || a[i] == '*' || a[i] == '/')
{
b = a[i];
break;
}
}
if (b == '0')
{
Console.WriteLine("Invalid operation!");
return false;
}
string[] m = s.Split(b);
double num1 = double.Parse(m[0]);
double num2 = double.Parse(m[1]);
double sum;
switch (b)
{
case '+':
sum = num1 + num2;
Console.WriteLine(string.Format("{0:n4}", num1) + "+" + string.Format("{0:n4}", num2) + "=" + string.Format("{0:n4}", sum));
break;
case '-':
sum = num1 - num2;
Console.WriteLine(string.Format("{0:n4}", num1) + "-" + string.Format("{0:n4}", num2) + "=" + string.Format("{0:n4}", sum));
break;
case '*':
sum = num1 * num2;
Console.WriteLine(string.Format("{0:n4}", num1) + "*" + string.Format("{0:n4}", num2) + "=" + string.Format("{0:n4}", sum));
break;
case '/':
if (num2 == 0)
{
Console.WriteLine("Wrong!Division by zero!");
return false;
}
sum = num1 / num2;
Console.WriteLine(string.Format("{0:n4}", num1) + "/" + string.Format("{0:n4}", num2) + "=" + string.Format("{0:n4}", sum));
break;
}
return true;
}
static void Main(string[] args)
{
List<string> str = new List<string>();
int len = 0;
while (true)
{
string input = Console.ReadLine();
if (!input.Equals(""))
str.Insert(len++, input);
else
break;
}
for (int i = 0; i < len; i++)
{
Calculator(str[i]);
}
Console.ReadKey();
}
}
}