例题 2-1 aabb 2-2 3n+1问题
2024-09-07 17:49:47
例题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时。结果就不变了,善于发现题目特点
最新文章
- 非域环境下搭建自动故障转移镜像无法将 ALTER DATABASE 命令发送到远程服务器实例的解决办法
- 利用excel拆分数据
- andorid 自定义seekbar
- javascript onload队列
- web响应式之bootstrap的基础用法。
- Learning WCF Chapter2 Service Description
- Android中为APP创建快捷方式的原理(自己的理解)
- Android获得线性渐变某点的颜色
- INNO setup 制作安装包
- asp.net mvc 上传附件验证
- 移植python笔记
- Vasya and Basketball CodeForces - 493C
- python学习第四次笔记
- Android开发点滴 - 如何使按钮水平垂直居中且始终占据屏幕宽度一半
- Properties属性操作
- Android-SQLiteOpenHelper
- 产生随机数 random
- jfinal如何调用存储过程?
- vue axios配置 发起请求加载loading请求结束关闭loading
- Appium获取安卓页面toast(java版)
热门文章
- python 46 盒模型 与盒模型布局
- 安装Windows服务,一直提示系统正在关机的错误。
- 使用pelican创建静态博客
- OpenCV向JNI层的参数转换
- 【汇编】MASM6.15几个简单的汇编程序
- 【sqli-labs】 less24 POST- Second Order Injections *Real treat* -Stored Injections (POST型二阶注入 *真的好玩?* 存储注入)
- 编程领域中的 ";transparent"; 和 ";opaque";
- 我所理解的monad(4):函子(functor)是什么--可把范畴简单的看成高阶类型
- React-Router ---withRouter
- python 爬取妹子