C语言编程练习:验证哥德巴赫猜想 进制转换 rand函数

目录

一. 验证哥德巴赫猜想

二. 进制转换

三. rand函数

往期回顾


一. 验证哥德巴赫猜想

        任一充分大的偶数,可以用两个素数之和表示,例如:

  4 = 2 + 2

  6 = 3 + 3

  10 = 3 + 7

  10 = 5 + 5

  ..

  9 8 = 1 9 + 7 9

思路:偶数 num 是要分解的数,则
num = i + (num - i )
其中 i (num - i ) 都得是素数
因此可以对 i 可能的取值进行穷举。
代码如下:
int isPrime(int x)
{int i = 0;for (i = 2; i <= sqrt(x); i++){if (x % i == 0)return 0;elsereturn 1;}
}
int main()
{int num;/*num:要判断的一个偶数*/int num1; /*num表示为两个素数num1和num-num1之和*/int count;/*计数输出个数,用于换行。*/printf("输入要验证的偶数:");scanf("%d", &num);if (num % 2 != 0)printf("输入的数不是偶数,程序终止\n");else {//采用穷举法,将num分解为两个素数之和count = 0;for (num1 = 2; num1 <= num / 2; num1++) {if (isPrime(num1) && isPrime(num - num1)) {printf("%d = %d + %d\t", num, num1, num - num1);count++;if (count % 3 == 0)printf("\n");//每输出3个数换一行       } //end of if		 			} //end of for}//end of elsereturn 0;
}

解读:

        首先先设计一个判断素数的函数isPrime()

        然后输入一个偶数进行判断

        最后验证哥德巴赫猜想。

运行结果如下:

        

二. 进制转换

设计一个函数,将十进制数转换成二进制、八进制和十六进制。然后在主函数中读入一个整数,调用函数,输出转换结果。

思路:

假设将十进制数 57 转换为二进制
从右到左写出每列的位值,直到发现位值大于该十进制数的列。这样就先得到

    位值:64   32   16   8   4   2   1

然后去掉位值为 64 的列,得到:

    位值:32   16   8   4   2   1

然后,从左至右进行。 57 除以 32 得商为 1 ,余数为 25 ,所以在 32 这列写下 1 ,然后 25 除以 16 商为 1 ,余数为 9 ,所以在 16 这列写下 1 ……

   位值:    32   16   8   4   2   1

   符号值: 1     1    1   0   0   1  所以(57)10=(111001)2

假设将十进制数 57 转换为八进制
从右到左写出每列的位值,直到发现位值大于该十进制数的列。这样就先得到

    位值:64   8   1

然后去掉位值为 64 的列,得到:

    位值:8   1

然后,从左至右进行。 57 除以 8 得商为 7 ,余数为 1 ,所以在 8 这列写下 1 ,然后 1 除以 1 商为 1 ,余数为 0 ,所以在 1 这列写下 1.

   位值:     8   1

   符号值: 7   1        所以(57)10=(71)8

代码如下:

void transfer(int num, int base)
{int p, k;p = 1;while (p <= num) //求p:p是base的x次幂,且p大于num p = p * base;p = p / base;/*循环求base进制数的各位*/while (p != 0) {k = num / p; /*计算当前要输出的那个base进制数*/if (k <= 9)printf("%d", k);elseprintf("%c", k-10+'A');num = num % p;p = p / base;}
}
int main()
{int num = 0;int base = 0;printf("先输入要转化的数:");scanf("%d", &num);printf("输入转化进制:");scanf("%d", &base);transfer(num, base);return 0;
}

运行结果如下:

三. rand函数

rand()函数:

  产生一个0到RAND_MAX之间的整数,使用时需要包含头文件<stdlib.h>

    RAND_MAX 是在头文件<stdlib.h>中定义的符号常量,ANSI规定其不得小于32767。

如果产生1~6的随机数,则: 1+rand()%6

如果输入一个数N,随机输出一个数介于a,b之间,则a+(int)rand()%(b-a+1)。

Ø 每一次调用函数 rand() 时,0到 RAND_MAX 之间的每一个数字被选中的机会几乎均等
Ø rand() 所产生的随机数是伪随机数,反复调用 rand() 产生的一系列数似乎是随机的,但是每次执行程序所产生的序列则是重复的。

srand(unsigned int)函数 如何实现真正的随机化:为函数rand设置随机数种子;每次执行程序时,只要随机数种子不同,产生的随机数序列也将不同。

让机器设置随机数种子:

        srand(time(NULL)):通过time函数使计算机读取当前时间值(以秒为单位,如1099228431 ),并把该值设成随机数种子,这样可以避免用户自己输入随机数种子。

下面是掷骰子游戏的代码:

#include<stdio.h>
#include<stdlib.h>
#include<time.h>int main()
{int i;srand(time(NULL));for(i=1;i<=20;i++){printf("%10d",1+rand()%6);if(i%5==0)printf("\n");}return 0;
}

运行结果如下:

 本次编程练习就分享到这里~ ~ ~

往期回顾

C语言——函数基本知识(三)-CSDN博客

C语言——函数基本知识(二)-CSDN博客

C语言 ——函数基本知识(一)-CSDN博客

“山林不向四季起誓,荣枯随缘”——C语言(爱心+祝福语)代码分享_爱心代码朋友圈文案-CSDN博客

C语言——二分法查找讲解_c语言二分法查找一个数-CSDN博客

C语言穷举法算法经典题型(二)_百钱百鸡问题c语言-CSDN博客

C语言穷举法算法经典题型(一)_c语言穷举法经典例题-CSDN博客

C语言算法经典基础题型——求一个数的回文数(两种方法)-CSDN博客

C语言基础入门(小白)三种方法解决幽灵换行符问题-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/472107.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

npm list -g --depth=0(用来列出全局安装的所有 npm 软件包而不显示它们的依赖项)

您提供的命令 npm list -g --depth0 是在 Node Package Manager (npm) 的上下文中使用的&#xff0c;用来列出全局安装的所有 npm 软件包而不显示它们的依赖项。 这是它的运作方式&#xff1a; npm list -g --depth0-g: 指定列表应包括全局安装的软件包。--depth0: 限制树形结…

‘视’不可挡:OAK相机助力无人机智控飞行!

南京邮电大学通达学院的刘同学用我们的oak-d-lite实现精确打击无人机的避障和目标识别定位功能&#xff0c;取得了比赛冠军。我们盼望着更多的朋友们能够加入到我们OAK的队伍中来&#xff0c;参与到各式各样的比赛中去。我们相信&#xff0c;有了我们相机的助力&#xff0c;大家…

hive 统计各项目下排名前5的问题种类

实现指定某项目下的数据效果图如下所示&#xff1a; 其中 ABCDE 为前5名的问题种类&#xff0c;其中A问题有124个&#xff08;出现了124次&#xff09; 数据说明&#xff1a; 整个数据集 包含很多项目一个项目 包含很多问题一个问题 选项 可认为是 类别值&#xff0c;所有出…

Odoo :一款免费开源的日化行业ERP管理系统

文 / 开源智造Odoo亚太金牌服务 概述 构建以 IPD 体系作为核心的产品创新研发管控体系&#xff0c;增进企业跨部门业务协同的效率&#xff0c;支撑研发管控、智慧供应链、智能制造以及全渠道营销等行业的场景化&#xff0c;构筑行业的研产供销财一体化管理平台。 行业的最新…

nacos-operator在k8s集群上部署nacos-server2.4.3版本踩坑实录

文章目录 操作步骤1. 拉取仓库代码2. 安装nacos-operator3. 安装nacos-server 坑点一坑点二nacos-ui页面访问同一集群环境下微服务连接nacos地址配置待办参考文档 操作步骤 1. 拉取仓库代码 &#xff08;这一步主要用到代码中的相关yml文件&#xff0c;稍加修改用于部署容器&…

【安全科普】NUMA防火墙诞生记

一、我为啥姓“NUMA” 随着网络流量和数据包处理需求的指数增长&#xff0c;曾经的我面对“高性能、高吞吐、低延迟”的要求&#xff0c;逐渐变得心有余而力不足。 多CPU技术应运而生&#xff0c;SMP&#xff08;对称多处理&#xff09;和NUMA&#xff08;非一致性内存访问&a…

HarmonyOS Next 组件或页面之间的所有通信(传参)方法总结

系列文章目录 【鸿蒙】HarmonyOS NEXT开发快速入门教程之ArkTS语法装饰器&#xff08;上&#xff09; 【鸿蒙】HarmonyOS NEXT开发快速入门教程之ArkTS语法装饰器&#xff08;下&#xff09; 【鸿蒙】HarmonyOS NEXT应用开发快速入门教程之布局篇&#xff08;上&#xff09; 【…

LeetCode654.最大二叉树

LeetCode刷题记录 文章目录 &#x1f4dc;题目描述&#x1f4a1;解题思路⌨C代码 &#x1f4dc;题目描述 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点&#xff0c;其值为 nums 中的最大值。 递归地在最大值 左边 的 子…

电子应用产品设计方案-9:全自动智能马桶系统设计方案

一、系统概述 本全自动智能马桶系统旨在提供舒适、卫生、便捷和智能化的如厕体验。通过融合多种传感器技术、电子控制单元和机械执行机构&#xff0c;实现马桶的自动冲洗、座圈加热、臀部清洗、烘干等功能&#xff0c;并具备智能感应、用户个性化设置和健康监测等特色功能。 二…

酒水分销积分商城小程序开发方案php+uniapp

酒水分销积分商城小程序开发&#xff0c;开发语言后端php&#xff0c;前端uniapp。核心功能模块&#xff1a;酒水商城、积分商城、二级分销、抽奖、优惠券。可以二开或定制。协助部署搭建。

UNIX网络编程-TCP套接字编程(实战)

概述 TCP客户端/服务器程序示例是执行如下步骤的一个回射服务器&#xff1a; 客户端从标准输入读入一行文本&#xff0c;并写给服务器。服务器从网络输入读入这行文本&#xff0c;并回射给客户端。客户端从网络输入读入这行回射文本&#xff0c;并显示在标准输出上。 TCP服务器…

Kafka-Eagle的配置——kafka可视化界面

通过百度网盘分享的文件&#xff1a;kafka-eagle-bin-2.0.8.tar.gz 链接&#xff1a;https://pan.baidu.com/s/1H3YONkL97uXbLTPMZHrfdg?pwdsltu 提取码&#xff1a;sltu 一、界面展示 二、软件配置 1、关闭kafka集群 kf.sh stop 2、将该软件上传到/opt/modules下 cd /opt…

Uniapp踩坑input自动获取焦点ref动态获取实例不可用

前言 大家好我是没钱的君子下流坯&#xff0c;用自己的话解释自己的知识。很久很更新了&#xff0c;这几个月一直在加班&#xff0c;今天记录一个uniapp关于input中focus()方法自动获取焦点的坑。 案例 为了实现一个手机验证码的页面&#xff0c;验证码是五个输入框&#xf…

报错 No available slot found for the embedding model

报错内容 Server error: 503 - [address0.0.0.0:12781, pid304366] No available slot found for the embedding model. We recommend to launch the embedding model first, and then launch the LLM models. 目前GPU占用情况如下 解决办法: 关闭大模型, 先把 embedding mode…

AI大模型(二):AI编程实践

一、软件安装 1. 安装 Visual Studio Code VSCode官方下载&#xff1a;Visual Studio Code - Code Editing. Redefined 根据自己的电脑系统选择相应的版本下载 安装完成&#xff01; 2. 安装Tongyi Lingma 打开VSCode&#xff0c;点击左侧菜单栏【extensions】&#xff0c;…

MFC程序崩溃时生成dmp文件

#include “HiExceptionHandle.h” #include <string> #pragma once class HiExceptionHandle { public:HiExceptionHandle(void);~HiExceptionHandle(void); public:void RunCrashHandler();void SetWERDumpLocation(const std::wstring dumpFolderPath); protected:st…

释放高级功能:Nexusflows Athene-V2-Agent在工具使用和代理用例方面超越 GPT-4o

在不断发展的人工智能领域&#xff0c;Nexusflows 推出了 Athene-V2-Agent 作为其模型系列的强大补充。这种专门的代理模型设计用于在功能调用和代理应用中发挥出色作用&#xff0c;突破了人工智能所能达到的极限。 竞争优势 Athene-V2-Agent 不仅仅是另一种人工智能模型&…

Flutter:input输入框

输入框&#xff1a; // 是否显示关闭按钮 bool _showClear false; // 文字编辑控制器&#xff0c;监听搜索框的变化。 final TextEditingController _controller TextEditingController(); // 输入框发生变化事件 void _onChange(String value){if(value.length > 0){setS…

vue 项目使用 nginx 部署

前言 记录下使用element-admin-template 改造项目踩过的坑及打包部署过程 一、根据权限增加动态路由不生效 原因是Sidebar中路由取的 this.$router.options.routes,需要在计算路由 permission.js 增加如下代码 // generate accessible routes map based on roles const acce…

鸿蒙next ui安全区域适配(刘海屏、摄像头挖空等)

目录 相关api 团结引擎对于鸿蒙的适配已经做了安全区域的适配&#xff0c;也考虑到了刘海屏和摄像机挖孔的情况&#xff0c;在团结引擎内可以直接使用Screen.safeArea 相关api 团结引擎对于鸿蒙的适配已经做了安全区域的适配&#xff0c;也考虑到了刘海屏和摄像机挖孔的情况&am…