当前位置: 首页 > news >正文

实验九 枚举问题(运算模拟)

实验名称:实验九 枚举问题(运算模拟)

实验目的:熟练掌握一些枚举问题的处理方法。

实验内容:

  1. 问题描述:(乘积为n个1的数字游戏)两位计算机爱好者在进行“积为n个1的数字游戏”,其中一位给定一个正整数p(约定整数p为个位数字不是5的奇数),另一位寻求正整数q,使得p与q之积为全是1组成的整数。

输入:第1行是测试数据的组数t,每组测试数据占1行,每行包括一个个位数字不是5的奇数p。

输出:对应每组测试数据输出共t行,每行输出两个整数,之间有一个空格分隔,一个是满足条件的整数q,另一个是p与q之积的1的个数。

输入样例

3       

11      

9       

89      

输出样例

1      2                                         

12345679     9                                   

124843945068664169787765293383270911360799     44

  1. 问题描述:(被除数的连写数)从1开始按正整数的顺序连续写下去所构成的整数称为连写数,要使连写数12345678901112...m(连写到m)能被给定整数p(p<1000)整除,m至少为多大?

输入:输入只有一行,为一个正整整p(p<1000)。

输出:输出为一行,包括两个整数,一个是商,另一个是整数连写数的最后一个数m,二者之间用空格分隔。

输入样例

13       

输出样例

94966760847      11

  1. 问题描述:(阶乘中找数)统计n阶乘中数字p的个数。

输入:输入只有一行,为两个正整整n、p(n≤800,0≤p≤9)。

输出:输出为两行,一行为n!,另一行为n!中数字p的个数。

输入样例

10      8

输出样例

3628800          

2                

  1. 问题描述:(尾数前移问题)整数n的尾数是q,把尾数q移到其前面(成为最高位)后所得的数为原来整数n的p倍,原整数n为多少?

输入:输入只有一行,为两个正整数q、p(2≤p≤q≤9)。

输出:输出为一行,即为所求n。

输入样例

8         4

输出样例

205128     

实验结果与分析(运行界面截图,打开需要截的图,按ALT+PrintScreen后,将光标移到下面,单击右键后选择“粘贴”):

 1.

(Ⅰ)程序代码及注释

#include <stdio.h>

int main(int argc, char *argv[])

{

int a,b,p,c,n,t,f;

scanf("%d",&t);

while(t--)

{

scanf("%d",&p);

c=0;n=0;

f=1;

while(c!=0||f!=0)

{

a=c*10+1;

c=a%p;

b=a/p;

n++;

if(f==1&&b==0)continue;

printf("%d",b);

f=0;

}

printf(" %d\n",n);

}

}

(Ⅱ)运行结果窗口截图(窗口适当缩小)和分析

2.

(Ⅰ)程序代码及注释

#include <stdio.h>

#include <string.h>

int main(int argc, char *argv[])

{

char buff[10];

int a,b,p,c,len,m,k,f;

scanf("%d",&p);

c=1;m=1;

f=0;

while(c!=0)

{

m++;

sprintf(buff,"%d",m);

len=strlen(buff);

k=0;

while(k<len)

{

a=c*10+buff[k]-'0';

k++;

c=a%p;

b=a/p;

if(f==0&&b==0)continue;

f=1;

printf("%d",b);

}

}

printf(" %d\n",m);

}

(Ⅱ)运行结果窗口截图(窗口适当缩小)和分析

3.

(Ⅰ)程序代码及注释

#include <stdio.h>

int main(int argc, char *argv[])

{

int n,p,a,m,i,j,k,w[2000],s;

scanf("%d%d",&n,&p);

w[0]=1;k=0;

for(i=1;i<=n;i++)

{

m=0;

for(j=0;j<=k;j++)

{

a=w[j]*i+m;

w[j]=a%10;

m=a/10;

}

while(m>0)

{

k++;

w[k]=m%10;

m=m/10;

}

}

for(s=0,i=k;i>=0;i--)

{

printf("%d",w[i]);

if(w[i]==p)s++;

}

printf("\n%d\n",s);

}

(Ⅱ)运行结果窗口截图(窗口适当缩小)和分析

4.

(Ⅰ)程序代码及注释

#include <stdio.h>

int main(int argc, char *argv[])

{

int a,m,j,k,p,q,w[100];

scanf("%d%d",&q,&p);

w[1]=q;m=0;k=1;a=p*q;

while(a!=q)

{

a=w[k]*p+m;

k++;

w[k]=a%10;

m=a/10;

}

for(j=k-1;j>=1;j--)

printf("%d",w[j]);

printf("\n");

}

(Ⅱ)运行结果窗口截图(窗口适当缩小)和分析

http://www.lryc.cn/news/328091.html

相关文章:

  • 2024 年 AI 辅助研发趋势:从研发数字化到 AI + 开发工具 2.0,不止于 Copilot
  • UE5数字孪生系列笔记(三)
  • ASR-LLM-TTS 大模型对话实现案例;语音识别、大模型对话、声音生成
  • 主干网络篇 | YOLOv8更换主干网络之EfficientNet
  • Web开发-Django学习笔记
  • 关于深度学习的 PyTorch 项目如何上手分析?从什么地方切入?
  • JavaEE企业开发新技术4
  • CSS使用JS变量
  • 拆分巨石:将MVPS和MVAS应用于遗留应用程序——可持续架构(六)
  • Linux renice命令教程:如何优雅地调整进程优先级(附案例详解和注意事项)
  • Gitea 的详细介绍
  • Kotlin object
  • 【Redis】数据类型、事务执行、内存淘汰策略
  • Python Flask Web框架初步入门
  • 【设计模式】工厂方法模式详解
  • 独立游戏《星尘异变》UE5 C++程序开发日志3——UEC++特供的数据类型
  • 递归方法的理解
  • css之flex布局文本不换行不显示省略号的解决方法
  • 华清远见STM32U5开发板助力2024嵌入式大赛ST赛道智能可穿戴设备及IOT选题项目开发
  • 若依框架实现不同端用户登录(后台管理用户和前台会员登录——sping security多用户)
  • 【解決|三方工具】Obi Rope 编辑器运行即崩溃问题
  • 岭师大数据技术原理与应用-序章-软工版
  • Leetcode 680. 验证回文串 II
  • 网络安全接入认证-802.1X接入说明
  • iPhone的iOS系统:定义移动智能体验,引领科技潮流之巅
  • 计算机网络:传输控制协议(Transmission Control Protocol-TCP协议
  • GEE实践应用|热岛效应(一)地表温度计算
  • Java查找算法知识点(含面试大厂题和源码)
  • 67、yolov8目标检测和旋转目标检测算法部署Atlas 200I DK A2开发板上
  • A Little Is Enough: Circumventing Defenses For Distributed Learning