ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

“21天好习惯“第一期-4

2021-10-26 12:03:06  阅读:162  来源: 互联网

标签:b% 26 天好 21 int 质数 第一期 printf 97


有一位优秀教师曾经对我们说,用C语言来解决数学题才是厉害的。所以,我最近就研究了关于使用C语言解决一些数学题的知识,发现果然生活中出现的一些数学题是可以用C语言来解决的。

#include <stdio.h>
#define PI 3.14159265

int main()
{
  double r;
  printf("请输入圆的半径:");
  scanf("%lf", &r);
  double C = 2 * PI * r;
  double S = PI * r * r;
  printf("圆的半径为:%.2lf\n周长为:%.2lf\n面积为:%.2lf", r, C, S);
}

 

比如说这个就是经典的解决有关圆的计算,现在用C语言后,我们解决这类问题的时间将大大减小,而且正确率也能得到保证。

到了后面,学会了C语言的循环和判断后,也开始能解决一些更具有难度的题目了。比如说判断一个数是否为质数。

#include <stdio.h>

int main(void)
{
    int a;
    int b = 0;
    do
    {
        printf("请输入一个整数:");
        scanf("%d", &a);
        if (a == 1 || a == 2)
        {
            printf("%d是质数\n", a);
        }
        else
        {
            for (int i = 2; i < a; i++)
            {
                b = a % i;
                if (b == 0)
                {
                    break;
                }
            }
            if (b == 0)
            {
                printf("%d不是质数\n", a);
            }
            else
            {
                printf("%d是质数\n", a);
            }
        }

    } while (a);
}

这个代码可以解决输入的数是否为质数。这对研究这方面的人员可能就有一定的帮助。

这里对我《“21天好习惯”第一期-2》进行一个修改。对于一个题目来说,解法可以是多种多样的。因为通往成功的路不止一条,但是对于学习编程的人员来说,代码应该是约简洁越能好的。这不仅能更轻松的发现错误,也方便别人看懂我们的原理。

现在还是这道题目,首先要感谢@仲舟学长的指点。他在算法组迎新群里发布了一段代码,能通过pta的检测并且也是获得10分的成绩。

#include<stdio.h>
int main()
{
long long b;
char a;
scanf("%c%lld",&a,&b);
printf("%c\n",(a-97-b%26+26)%26+97);
return 0;
}


 

此时a到z的循环就是0到26的循环,周期是26。不管b让最终的结果转了几圈,最后的结果都是只看未满一圈的部分,所以只需要取b%26。因为正数部分使整体逆时针移动,所以b%26前面是负号。由于a-97-b%26的结果可能是负数,这个时候最巧妙的地方就出现了,给这个值加一个26来确保结果为正,(a-97-b%26+26)%26整体结果除以26的余数就是在0到26之间的映射,最后加上97,恢复原来的ASCII码值。

 这可能就是差距,我想获得10分写了20多行的代码,但是人家用了短短几行就将问题解决。他也不愧是算法组的成员,这也让我感受到了算法的魅力。算法真的可以让走过的路变的简洁。

21天好习惯 第一期-4

失败的只有一种人,就是在抵达成功之前放弃的人。

                                                                      ——江西师范大学软件学院2021级的一位学生         

                                                                                                            2021年10月26日

标签:b%,26,天好,21,int,质数,第一期,printf,97
来源: https://blog.csdn.net/qq_63165951/article/details/120962792

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有