11.14作业(打印图案,乘法表右对齐,圆周率,哥德巴赫猜想)

简介: 11.14作业(打印图案,乘法表右对齐,圆周率,哥德巴赫猜想)

1.打印图案

#include <stdio.h>
int main()
{
    int n;
    char ch[] = "abcdefghijklmnopqrstuvwxyz";
    char* p = ch;
    scanf("%d", &n);
    for (int i = n; i > 0; i--)
    {
        for (int j = 0; j < n-i; j++)
             printf(" ");
        for (int k = 1; k <= 2 * i - 1; k++)
             printf("%c", *(p + k - 1));
        if(i > 1)
        printf("\n");
    }
    return 0;
}

这里打印图案没什么难度,主要是按顺序依次输出abc...这里我采用了指针,也可以用asc||码值

2.打印乘法表右对齐

#include <stdio.h>
int main()
{
  int n;
  scanf("%d", &n);
  for (int i = n; i > 0; i--)
  {
    for (int j = 0; j < n - i; j++)
    {
      printf("          ");
    }
      for (int j = i; j > 0; j--)
    {
      printf("%d*%d=%2d    ", i, j, i * j);
    }
    printf("\n");
  }
  return 0;
}

3.计算圆周率(蒙特卡罗法)

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
int main()
{
  double x = 0, y = 0, pi = 0;
  double n = 1e6, count = 0, a;
  scanf("%lf", &a);
  srand(a);
  for (int i = 0; i < n; i++)
  {
    x = (double)rand() / RAND_MAX;
    y = (double)rand() / RAND_MAX;
    if (sqrt(x * x + y * y) < 1)
      count++;
  }
  pi = 4.0 * (count / n);
  printf("%.5lf", pi);
  return 0;
}

解读一下这个代码:首先定义x,y表示坐标,然后设定一个随机数种子srand(a),意思就是如果a等于100,下面rand取随机数时从100开始,在除以RAND_MAX(表示一个很大的随机数,至少也是三十多万),所以(double)rand()/RAND_MAX范围在0-1之间(也可以理解成一个有限的数乘上无穷小量还是一个无穷小量),当然可能由于编译器的差异,不同编译环境下算出的pi值不同。 (因为产生的随机数不一样)

4.哥德巴赫猜想

#include <stdio.h>
int main()
{
  int n, k, x;
  scanf("%d", &n);
  for (int i = n; i > 2; i--)
  {
    for (int j = 2; j <= i; j++)
    {
      if (i + j == n)
      {
        for (x = 2; x < j; x++)
          if (j % x == 0)
            break;
        for (k = 2; k < i; k++)
          if (i % k == 0)
            break;
        if (k == i && x == j)
          printf("%d+%d\n", j, i);
      }
    }
  }
  return 0;
}

别先去判断质数,先去判断两数之和,大大节省运行时间

相关文章
|
26天前
|
人工智能 弹性计算 运维
【本不该故障系列】告别资源“不确定性”,SAE如何破解刚性交付核心困境
资源刚性交付是保障线上业务稳定的核心。阿里云SAE通过全托管Serverless架构,实现资源无限弹性、性能100%隔离、按需秒级计费,破解自建K8s在库存、性能、成本等方面的系统性困境,让企业无需妥协即可获得确定性交付能力。
【本不该故障系列】告别资源“不确定性”,SAE如何破解刚性交付核心困境
|
9月前
|
存储 缓存 安全
【原理】【Java并发】【volatile】适合初学者体质的volatile原理
欢迎来到我的技术博客!我是一名热爱编程的开发者,梦想是写出高端的CRUD应用。2025年,我正在沉淀自己,博客更新速度也在加快。在这里,我会分享关于Java并发编程的深入理解,尤其是volatile关键字的底层原理。 本文将带你深入了解Java内存模型(JMM),解释volatile如何通过内存屏障和缓存一致性协议确保可见性和有序性,同时探讨其局限性及优化方案。欢迎订阅专栏《在2B工作中寻求并发是否搞错了什么》,一起探索并发编程的奥秘! 关注我,点赞、收藏、评论,跟上更新节奏,让我们共同进步!
399 8
【原理】【Java并发】【volatile】适合初学者体质的volatile原理
|
安全 Ubuntu Shell
深入解析 vsftpd 2.3.4 的笑脸漏洞及其检测方法
本文详细解析了 vsftpd 2.3.4 版本中的“笑脸漏洞”,该漏洞允许攻击者通过特定用户名和密码触发后门,获取远程代码执行权限。文章提供了漏洞概述、影响范围及一个 Python 脚本,用于检测目标服务器是否受此漏洞影响。通过连接至目标服务器并尝试登录特定用户名,脚本能够判断服务器是否存在该漏洞,并给出相应的警告信息。
781 84
|
SQL 数据库
SQL Server 附加数据库,报只读文件,无权修改其中某些文件
SQL Server 附加数据库,报只读文件,无权修改其中某些文件
526 0
|
监控
zabbix如何添加自定义监控项
zabbix如何添加自定义监控项
863 0
|
NoSQL Java Redis
|
SQL XML Java
Mybatis的<where>,<if>等标签用法
这篇文章详细解释了Mybatis中<where>和<if>等标签的用法,展示了如何在SQL动态构建中有效地过滤条件和处理逻辑分支。
894 1
|
弹性计算 大数据 测试技术
2024年阿里云最便宜云服务器价格参考:61元、165元、99元、199元
阿里云近期推出的服务器优惠活动政策,为新老用户提供了丰富的选择和超值的价格。以下是详细的优惠活动政策整理:具体的价格表可能会因时间、地区、配置等因素而有所变化,建议前往阿里云官网查看最新的价格表。阿里云此次的优惠活动政策为用户提供了高性价比的服务器选择,无论是新用户还是老用户,都可以享受到这一超值优惠。此外,续费价格保持不变,为用户提供了长期稳定的云服务体验。
|
编解码 前端开发 开发者
构建响应式Web界面:Flexbox布局的全面指南
【2月更文挑战第28天】 在当今多变的设备屏幕尺寸和分辨率中,创建一个能够适应不同视口的响应式Web界面至关重要。本文深入探讨了CSS Flexbox布局模块,它是一种设计灵活且强大的方式来创建复杂的响应式布局。我们将透过概念解析、关键属性讲解以及实际案例分析,帮助前端开发者掌握Flexbox的核心原理和应用技巧,以实现流畅的页面布局调整和优化用户体验。