C# 字符提取和整数整除练习(Console)
用控制台应用程序实现下列功能:从键盘接收一个大于100的整数,然后分别输出该整数每一位的值,并且输出这些为相加的结果。要求分别用字符提取法和整数整除法实现。字符提取法是指先将整数转换为字符串,然后依次取字符串中的每个字符,再将每个字符转换为整数求和。整数整除法是指利用取整和求余数的方法求每一位的值,再求这些位的和。
程序運行效果如圖:
代碼如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace lianxi
{
class Program
{
static void Main(string[] args)
{
while (true)
{
Console.Write("请输入一个大于100的数:");
string str = Console.ReadLine();
int a = int.Parse(str);//將輸入的數字轉化成整型
int length = Math.Abs(a).ToString().Length;//計算輸入的數字的長度
Console.WriteLine("该整数共有" + length + "位");
Console.Write("实现思路1:每一位的值为");
//字符提取法
int sum = 0;
int l;
for (int i = 0; i < length; i++)
{
if (i != length - 1)//運用if輸出‘、’和‘,’,如果不需要,也可以不寫if語句
{
Console.Write(str[i] + "、");
l = str[i] - '0';
}
else
{
Console.Write(str[i] + ",");
l = str[i] - '0';//此處減去‘0’,表示使用字符值,而不是ASCII碼值;如果減去0,則得出的是ASCII碼值
}
sum = sum + l;
}
Console.WriteLine("这些位之和为" + sum);
//整數整除法
int x = a;
int sum1 = 0;
Console.Write("实现思路2:每一位的值为");
for (int i = length - 1; i >= 0; i--)
{
int j = (int)Math.Pow(10, i);//定義10的i次方等於j
int a1 = x / j;
if (i != 0)
{
Console.Write(a1 + "、");
}
else
{
Console.Write(a1 + ",");
}
x = x % j;
sum1 = sum1 + a1;
}
Console.WriteLine("这些位之和为" + sum1);
Console.WriteLine("按回車鍵退出,按任意键继续");
if (Console.ReadKey(true).Key == ConsoleKey.Enter) break;//判斷輸入,如果輸入的是回車鍵,則退出
}
}
}
}
ps:小白第一次寫,有很多不妥的地方,希望大家多多包涵。希望與大家一起共同進步。