使用C#解决编程题一

本文介绍了使用C#解决各种编程问题,包括进制转换、字符串匹配、阶乘和、判断完数、判断润年、完美立方、奇偶数排序、计算反序数、五猴分桃和斐波那契数列等算法。通过实例展示了C#在ACM算法中的应用。
摘要由CSDN通过智能技术生成

还记得大一时练习ACM算法的时光,那时候解题用的是c和c++,最近想练练编程算法,但是c和c++好久没用了,很多地方生疏了。鉴于此,我准备用C#来写写代码。

进制转换

第一行:A进制和B进制(2<=A,B<=30)
第二行:A进制的数值num
要   求 :将A进制的num转为B进制数输出

代码:

//输入A和B进制和数值
string AtoB = Console.ReadLine();
string num = Console.ReadLine();
//得到A、B进制和数值
string[] atob = AtoB.Split(' ');
int A = Convert.ToInt32(atob[0]);
int B = Convert.ToInt32(atob[1]);
char[] c = num.ToArray();
//将A进制转为10进制
int x = 0;
double sum = 0;
for(int i=c.Length -1;i>=0;i--, x++)
{
    if (c[i] >= 'A')
    {
        sum += (c[i] - 'A' + 10) * Math.Pow(A, x);
    }
    else
    {
        sum += (c[i] - '0') * Math.Pow(A, x);
    }
}

//将10进制转为B进制
int temp = (int)sum;
List<double> result = new List<double>();
while(temp!=0)
{
    result.Add(temp % B);
    temp /= B;
}
result.Reverse();
foreach (double item in result)
{
    Console.Write(item);
}
Console.WriteLine();
//Console.ReadKey();

字符串匹配

第一行:输入字符串a
第二行:输入字符串b
要 求 :输出a中b的个数,以及b在a中的起始下标

例:
输入:
abcdabcacabce
abc
输出:
count:3
indexs:0 4 9

//字符串匹配找KMP
int[] Next(string T)
{
    int [] next=new int[T.Length];
    int k=-1;
    int j=0
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值