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

xtu-c语言考试复习-2

1223

确实写不出,数据远超过64位,难道用数组存吗,但是不好计算,想到的思路是取模,一边计算,一边取模,就不会超过数据范围,但是数学原理没懂,所以做不出来

看了下自己以前写的博客,确实是取模,以后积累经验,就是如果超过了数据范围,就直接用取模运算来控制这个范围

#include<stdio.h>
#include<stdbool.h>int main()
{int t;scanf("%d",&t);while(t--){int m;scanf("%d",&m);int k=1;int cnt=1;bool flag=false;for(int i=1;i<1000000;i++){k%=m;if(k==0)	{printf("%d\n",cnt);flag=true;break;}k=k*10+1;cnt++;}if(!flag)	puts("0");}return 0;
}

看自己博客又敲了一遍,WA了一次,因为我把循环的上界设置为了输入的数字,但是是不可取的,好吧,又试了一下,把上界设成输入的数字,取到等于号就可以过了

1308

样例能过,但是WA,实在想不通

#include<stdio.h>int main()
{int t;scanf("%d",&t);while(t--){int n;scanf("%d",&n);int cnt1=0,cnt2=0;while(n!=1){int temp=n%2;int m=n-temp;m/=2;cnt1++;cnt2+=m;n=n-m;}printf("%d %d\n",cnt1,cnt2);}return 0;
}

确实是自己没有考虑到位,应该是没有考虑需要比赛的人数是偶数的情况,先补上一份按照之前博客写的代码,再看下能不能把上面的代码改对

#include<stdio.h>int main()
{int t;scanf("%d",&t);while(t--){int n;scanf("%d",&n);int cnt1=0,cnt2=0;int m=0;while(n>1){m=1;while(m<n)	m*=2;if(m!=n)	m/=2;cnt1++;cnt2+=m/2;n=n-m/2;}//printf("%d\n",m);printf("%d %d\n",cnt1,cnt2);}return 0;
}

改了一下还是改不出来,想不明白

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

相关文章:

  • MySQL决战:MySQL数据导入导出
  • Unity 面试篇|(二)Unity基础篇 【全面总结 | 持续更新】
  • TIDB的忘了root用户密码和数据库密码解决办法
  • QT基础篇(4)QT5基本对话框
  • Springboot项目Nacos做配置中心
  • SpringSecurity入门demo(三)多用户身份认证
  • 【设计模式-02】Strategy策略模式及应用场景
  • ssh远程登陆
  • go如何终止多个for select循环嵌套
  • nginx(1.13.7)首次安装出现:【make: *** 没有规则可以创建“default”需要的目标“build” 问题】解决措施
  • 2024.1.8 关于 Redis 数据类型 Zset 集合命令、编码方式、应用场景
  • ffmpeg[学习(四)](代码实现) 实现音频数据解码并且用SDL播放
  • C++ 字符串哈希 || 字符串前缀哈希法
  • 【java】项目部署liunx服务器的简单步骤
  • 深度学习笔记(五)——网络优化(1):学习率自调整、激活函数、损失函数、正则化
  • 鸿蒙开发现在就业前景怎样?
  • 试用统信服务器操作系统UOS 20
  • [情商-11]:人际交流的心理架构与需求层次模型
  • 【.NET Core】Lazy<T> 实现延迟加载详解
  • 坑记(HttpInputMessage)
  • day04打卡
  • 语义分割miou指标计算详解
  • Unity3d 实现直播功能(无需sdk接入)
  • 计算机缺失msvcr100.dll如何修复?分享五种实测靠谱的方法
  • 面试宝典进阶之redis缓存面试题
  • 调试(c语言)
  • opencv-4.8.0编译及使用
  • Jmeter 性能-监控服务器
  • Excel学习
  • 【技能---labelme软件的安装及其使用--ubuntu】