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

第一、二、三章 习题总结

习题 2-6(P35)

用1,2,3,···,9 组成3个三位数 abc , def 和 ghi ,每个数字恰好使用一次,要求 abc : def : ghi = 1:2:3 。按照“abc def ghi”的格式输出所有解,每行一个解。

由题意知,abc必定小于333,大于123 。可用for循环遍历。

#include <bits/stdc++.h> using namespace std; int main(){ for(int abc = 123;abc < 333;abc++){ int def = 2*abc,ghi = 3*abc; bool use[10]; memset(use,0,sizeof(use));//数组初始化为false bool value = true;//标记数字是否有效 int x = abc;//检查abc while(x > 0){ int t = x%10; if(t == 0 || use[t]){value = false;break;}//数字为0或数字已使用:数字无效 use[t] = true;//标记已使用 x /= 10; } if(!value) continue;//数字无效,进入下一个 for 循环 int y = def;//检查def while(y > 0){ int t = y%10; if(t == 0 || use[t]){value = false;break;}//数字为0或数字已使用:数字无效 use[t] = true;//标记已使用 y /= 10; } if(!value) continue;//数字无效,进入下一个 for 循环 int z = ghi;//检查zghi while(z > 0){ int t = z%10; if(t == 0 || use[t]){value = false;break;}//数字为0或数字已使用:数字无效 use[t] = true;//标记已使用 z /= 10; } if(value) cout << abc << ' ' << def << ' ' << ghi << endl;//检查全部通过,输出结果 } return 0; }

习题3-4(P57)
如果一个字符串可以由某个长度为k的字符串重复多次得到,则称该串以k为周期。例
如,abcabcabcabe以3为周期(注意,它也以6和12为周期)。
输入一个长度不超过80的字符串,输出其最小周期。

1.遍历k从1到n;2.若n%k== 0,将s分割为m=n/k段,判断是否全部相等。3.第一个满足条件的k即为最小周期。

#include <bits/stdc++.h> using namespace std; int main(){ string s; while(getline(cin,s)){ if(s.empty()) break; int n = s.size(); for(int k = 1;k <= n;k++){ if(n%k == 0){ bool prime = true;//判断是否周期 for(int i = k;i < n;i++){ if(s[i] != s[i%k]){prime = false;break;}//子串第i个是否与第i个相等 } if(prime){cout << k << endl;break;}//输出 } } } return 0; }

习题3-8(P59)

输入整数a和b(0 <= a <= 3000,1 <= b <= 3000),输出a/b的循环小数表示以及循环节长度。例如a=5,b=43,小数表示为0.(116279069767441860465),循环节长度为21。

#include <bits/stdc++.h> using namespace std; int main(){ int a,b; cin >> a >> b; if(a == 0){cout << "0.0" << endl << "0" << endl;return 0;} int q = a/b,r = a%b; if(r == 0){cout << q << ".0" << endl << "0" << endl;return 0;} map<int ,int> pos; vector<int> digits; int p = 0,start = -1; while(r){ if(pos.count(r)){start = pos[r];break;} pos[r] = p++; r *= 10; digits.push_back(r/b); r %= b; } string res = to_string(q) + "."; for(int i = 0;i < digits.size();i++){ if(i == start) res += "("; res += to_string(digits[i]); } if(start != -1) res += ")"; int len = (start == -1) ? 0 : p - start; cout << res << endl << len <<endl; return 0; }
http://www.jsqmd.com/news/264074/

相关文章:

  • 人群仿真软件:AnyLogic_(4).行人库功能详解
  • GESP认证C++编程真题解析 | 202306 一级
  • 提示工程架构师必学:用Few-shot Learning增强提示情境感知的AI技巧
  • 2026苏州装修哪家强?覆盖不同业主的装修需求的十大装修公司! - 品牌测评鉴赏家
  • 用 Python 实现芯片性能优化模型
  • 【计算机毕业设计案例】基于微信小程序的校园跑腿小程序基于springboot+微信小程序的校园外卖直送平台(程序+文档+讲解+定制)
  • 开源大模型选择指南:精准匹配需求 + LLaMA-Factory Online高效落地
  • 2026船用法兰市场盘点:哪些公司口碑载道值得选?不锈钢管板/不锈钢法兰/高温合金法兰,船用法兰供应商哪家权威 - 品牌推荐师
  • 到一个不可思议的Python库——Envoy
  • 阿里Java面试被问:WebSocket的心跳检测和自动重连实现
  • 机器学习项目:矿物分类系统重制版
  • JavaWeb从入门到进阶(vue与Ajax Axios)
  • 上下文理解在智能家居AI应用中的落地实践
  • 2026法式轻奢风装修指南:探寻专业设计师所在公司 - 品牌测评鉴赏家
  • 探寻新中式装修的宝藏公司,2026让家演绎东方雅韵 - 品牌测评鉴赏家
  • 交通仿真软件:VISSIM_(18).交通仿真在交通安全分析中的应用
  • JavaWeb从入门到进阶(前端工程化)
  • AI 怎么做自动化伦理监测?
  • 交通仿真软件:VISSIM_(21).交通仿真的未来趋势与挑战
  • 深度学习与大数据:推动 AI 进步的基石
  • 全网最全9个AI论文工具,助本科生轻松搞定毕业论文!
  • 交通仿真软件:VISSIM_(19).交通仿真在交通工程设计中的应用
  • C++游戏开发之旅 2
  • 小程序毕设选题推荐:基于springboot+微信小程序的校园订餐小程序校园外卖直送平台【附源码、mysql、文档、调试+代码讲解+全bao等】
  • 交通仿真软件:VISSIM_(21).交通仿真优化方法
  • 2026解锁现代简约风,这几家装修公司设计绝了! - 品牌测评鉴赏家
  • Linux初探:从零开始的命令行冒险
  • 2026年行业内靠谱的旋风除尘器直销厂家联系电话,除尘器/沸石转轮/催化燃烧/沸石转轮+CO,除尘器批发厂家怎么选 - 品牌推荐师
  • 交通仿真软件:VISSIM_(20).交通仿真在交通环境影响评估中的应用
  • 计算机小程序毕设实战-基于SpringBoot+微信小程序的校园外卖平台管理系统基于springboot+微信小程序的校园外卖直送平台【完整源码+LW+部署说明+演示视频,全bao一条龙等】