例题2-1  aabb

输出所有形如aabb的四位完全平方数(即前两位数字相等,后两位数字也相等)

#include <stdio.h>
#include <stdlib.h>
#include <math.h> int main(int argc, char *argv[])
{int i, j, n;double m;for(i = 1; i <= 9; i++)for(j = 0; j <= 9; j++){n = i*1100 + j*11;//n = (i*10+i)*100 + j*10 + j;m = sqrt(n);if(floor(m+0.5) == m) printf("%d\n", n);}system("PAUSE");  return 0;
}int main(int argc, char *argv[])
{int x, y;for(x = 33; x*x <= 9999; x++){y = x*x;if(y/1000 == y/100%10 && y/10%10 == y%10)printf("%d\n", y);}system("PAUSE");    return 0;
}

总结:1 一组逆向的思维解决同一个问题

2 用变量n = a*1100 + b*11来储存四位数

3 浮点运算会存在误差。在进行浮点数误差时,应考虑到浮点误差  如 floor(m+0.5) == m

例题2-2 3n+1问题
猜想:对于任意大于1的自然数n,若n为奇数,则将n变成3n+1,否则变成一半
经过若干次这样的变换,一定会使n变成1.例如3->10->5->16->8->4->2->1 输入n,输出变换的次数。n≤10^9.  样例输入:3  样例输出:7
#include <stdio.h>
#include <stdlib.h>int main(int argc, char *argv[])
{unsigned  n, count = 0;scanf("%d", &n);while(n > 1){if(n % 2 == 1)  { n = n + (n+1)/2; count += 2; continue;}else n >>= 1 ;count++;}printf("%d\n", count);system("PAUSE");   return 0;
}

总结:1  3n+1会溢出
            2 一个临时的解决方案是:因为n为奇数事3*n+1一定是偶数,下一步将其立刻除以2.如果将两次操作一起做,可以在一定程度上缓解这个问题。有兴趣的读者可以试一                 试。程序特点,要善于发现。
            3  除以2 用右移操作

4 (3n+1)/2不如写做 n + (n+1)/2,减少溢出的可能

例题2-3 阶乘之和
输入n,计算S=1!+2!+3!+……+n!的末6位(不含前导0),n≤10^6

#include <cstdlib>
#include <stdio.h>int main()
{const int MOD = 1000000;int n;long long sum = 0, tem = 1;scanf("%d",&n);for (int i=1; i<=n; i++){tem = tem*i%MOD ;sum = (sum+tem)%MOD;}printf("%d\n",sum);system("PAUSE");return EXIT_SUCCESS;
}

总结:1 算术溢出,用每步除MOD的方式来解决
            2 本题特性,当n>25时,结果就不变了,善于发现题目特点

例题 2-1 aabb 2-2 3n+1问题相关推荐

  1. UA MATH564 概率论 依概率收敛的一个例题

    UA MATH564 概率论 依概率收敛的一个例题 Part (a) Let Yn∼U(−1/n,1/n)Y_n \sim U(-1/n,1/n)Yn​∼U(−1/n,1/n), Zn∼U(n,n+1 ...

  2. 巴什博弈例题:NYOJ23;HDU:2149,1847,2897,2188

    巴什博弈: 只有一堆n个物品,两个人轮流从这堆物品中取除,每次取的个数为[1,m](至少去一个,最多取m个),最后取完者获胜 特征: 物品只有一堆,简单变形: 要么在范围内不规定个数,要么规定只能取几 ...

  3. C++算法设计与分析例题代码(基础篇)

    C++算法设计与分析例题代码 前言 一.求1/1!-1/3!+1/5!-1/7!+...+(-1)^(n+1)/(2n-1)! 二.一个数如果恰好等于它的因子之和(包括1,但不包含这个数本身),这个数 ...

  4. 查找---结合力扣几道经典例题讲解

    文章目录 一.查找表 考虑的基本数据结构 算法应用 LeetCode 349 Intersection Of Two Arrays 1 题目描述 分析实现 LeetCode 350 Intersect ...

  5. crout分解计算例题_初中数学因式分解习题大全(建议父母给孩子收藏直接打印)...

    一.填空题(共10小题) 1.已知x+y=10,xy=16,则x2y+xy2的值为 . 2.两位同学将一个二次三项式分解因式,一位同学因看错了一次项系数而分解成2(x﹣1)(x﹣9):另一位同学因看错 ...

  6. 821数据结构例题总结

    个人复习整理,持续更新-- 文章目录 一.概念 1.简述数据结构中的抽象数据类型和编程语言中的数据类型有什么异同点.(彭波P8) 二.线性表 1.线性表的链式存储结构与顺序存储结构的区别. 2.已知p ...

  7. CDQ分治学习及例题总结

    文章目录 1.**使用cdq分治的条件:** 2.**cdq分治的性质:** 3. **cdq使用步骤:** 4.**自己对cdq分治学习的一些感悟:** 5. cdq分治的详细讲解(转自[stdca ...

  8. 时间复杂度详解+例题分析

    目录 导语简言 1.what-什么是时间复杂度 2.How-如何表示时间复杂度--大O表示法 概念 表达式推导 3.example-例题解析 导语简言 1.算法时间复杂度:算法执行时间与算法的语句执行 ...

  9. 【编译原理】-- 第二章(一)(文法和语言的定义、递归规则与递归文法、例题)

    目录 形式化方法 语言的定义可采用下列三种方法 一.文法和语言的定义 1.字母表和符号串的基本概念和术语 (1)字母表 (2)符号串 (3)字母表∑上的符号串的递归定义. (4)符号串的前缀.后缀和字 ...

  10. 分解例题及解析_【高考物理】考前梳理,高中物理经典常考例题(带解析),收藏起来考试不低于90+!...

    物理应该是理综里最让同学们头疼的一科.最后的压轴大题更是让很多人不知道该怎么下手,题型复杂难理解,简直是丢分"小能手". 别怕!学姐来拯救你们了!高中物理经典常考例题(带解析),考 ...

最新文章

  1. Redis的文件格式
  2. metaSPAdes:新型多功能宏基因组拼接工具
  3. linux查找nginx目录,Linux下查看nginx安装目录
  4. JavaSE(二十六)——多线程之模拟龟兔赛跑
  5. 虚拟交换机软件_H3C交换机IRF配置介绍
  6. Matlab入门(一)
  7. denison php,Parker / Denison丹尼逊柱塞泵首相系列相关说明
  8. java服务端高并发问题_Java服务端两个常见的并发错误
  9. OCS2007R2部署之四部署存档和监控服务器
  10. JavaScript:instanceof 实现原理
  11. Android游戏开发
  12. OTDR使用中测试与误差原因分析
  13. CSS3D魔法——旋转魔方
  14. 安川机器人示教器按键功能介绍
  15. 重要的GMaps对象与接口
  16. balsamiq mockups 3.0破解教程
  17. 中华瑰宝之山西人的面食
  18. 深度盘点:整理100个 Pandas 常用函数
  19. 江苏在职读研计算机专业,计算机技术专业江苏科技大学在职研究生的相关信息介绍...
  20. 【Java容器】Java容器入门教程

热门文章

  1. C#使用NPOI的方式操作Excel复制行
  2. Verdi快速使用技巧
  3. 劳埃镜 matlab,光学习题及答案
  4. 用户登录,前后端如何交互判断是否登录超时!
  5. oracle同义词表不存在,同义词什么时候失效呢?
  6. matplotlib绘图实现中文宋体和英文Times New Roman
  7. php fatal error解决,PHP中超时提示Fatal error: 解决办法
  8. 第三阶段应用层——1.13 数码相册—梳理与总结
  9. xml文件中SQL语句的大于号、小于号、等于号的转义问题
  10. matlab 电磁场工具箱,基于MATLAB软件的电磁场的可视化研究.doc