acm水题3个:1.求最大公约数;2.水仙花数;3.判断完数
//7.求两个整数的最大公约数
#include<stdio.h>
//用穷举法求出最大公约数
int gcd1(int m,int n)
{
int min = m > n ? n : m;
while (min)
{
if (m%min == 0 && n%min == 0)
{
break;
}
else
{
min--;
}
}
return min;
}
//快速求最大公约数的算法,称为辗转相除法,以下用递归实现
int gcd2(int m,int n)
{
if (n==0)
{
return m;
}
return gcd2(n, m%n);
}
int main()
{
int n, m;
while (~scanf("%d%d",&m,&n))
{
//printf("最大公约数为:%d\n", gcd1(m, n));
printf("最大公约数为:%d\n", gcd2(m, n));
}
return 0;
}
//8、“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,/
//比如:153=1^3+5^3+3^3,输入一个整数,判断它是否是水仙花数。
#include<stdio.h>
int cube(int a)
{
return a*a*a;
}
int main()
{
int n;
int temp;
int g;//个位
int s;//十位
int b;//百位
int num[4];
int sum;
while (~scanf("%d",&n))
{
//temp用来记录原来的n,因为后面n会被改掉
temp = n;
sum = 0;//sum用来记录各数的立方和
for (int i = 0; i < 3; i++)
{
num[i] = n % 10;
sum += cube(num[i]);
n /= 10;
}
if (sum==temp)
{
printf("此三位数是水仙花数\n");
}
else
{
printf("此三位数不是水仙花数\n");
}
/*g = n % 10;
n /= 10;
s = n % 10;
n /= 10;
b = n % 10;
if (temp == (cube(g) + cube(s) + cube(b)))
{
printf("此三位数是水仙花数\n");
}
else
{
printf("此三位数不是水仙花数\n");
}*/
}
return 0;
}
//9、完数的定义:如果一个大于1的正整数的所有因子之和等于它的本身,
//则称这个数是完数,比如6,28都是完数:6=1+2+3;28=1+2+4+7+14。输入一个整数,判断它是否是完数。
#include<stdio.h>
int main()
{
int n;
int temp;//用来记录所有因子之和
while (~scanf("%d",&n))
{
temp = 0;//每次一次都要初始化一次
for (int i = 1; i <= n / 2; i++)
{
if (n%i==0)
{
temp += i;
}
}
if (temp==n)
{
printf("此数是完数\n");
}
else
{
printf("此数不是完数\n");
}
}
return 0;
}
参考博客:http://blog.csdn.net/hackbuteer1/article/details/6667026
acm水题3个:1.求最大公约数;2.水仙花数;3.判断完数的更多相关文章
- ACM水题
ACM小白...非常费劲儿的学习中,我觉得目前我能做出来的都可以划分在水题的范围中...不断做,不断总结,随时更新 POJ: 1004 Financial Management 求平均值 杭电OJ: ...
- java求1000以内的水仙花数
水仙花数是指一个 n 位数 ( n>=3 ),它的每个位上的数字的 n 次幂之和等于它本身.(例如:1^3 + 5^3 + 3^3 = 153) 三位的水仙花数共有4个,分别为:153.370. ...
- HD ACM 水题顺序
原文传送门:http://acm.hdu.edu.cn/ 第一阶段:开始入门吧!(15天,53题) 一.输入输出练习(2天,10题) 1000.1089-1096.1001 二.简单操作:(2-4天, ...
- 2009 ACM 水题
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2009 思路:寻找平方根的函数,c++里面有sqrt,一定要注意 1 添加头文件#include <i ...
- 2186 ACM 水题 int 向下取整
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2186 扩展: #include <cstdio> 使用floor函数.floor(x)返回的是 ...
- 2107 ACM 水题
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2107 题意:比较大小,即使简单还是没有一次过,粗心的我,终于放假了,虽然我平时课还是有点多,但是希望自己能 ...
- python练习笔记——求三位的水仙花数
百位数的立方 + 十位数的立方 +个位数的立方 = 原数 for m in range(1,10): for n in range(0,10): for i in range(0,10): a = m ...
- hdu 1201:18岁生日(水题,闰年)
18岁生日 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- 用js 的for循环打印三角形,提取水仙花数,求本月多少天
第一题:用for循环打印三角形 //第一个 for(var x = 1;x <= 4;x++){ //控制行数 :由 1 到 4 for(var y = 1;y <= x;y++){ // ...
随机推荐
- TemplateMethod-模板模式
什么是Template Method模式 在父类中定义处理流程的框架,在子类中实现具体处理的模式就称为Template Mehtod模式.模板模式的关键是:子类可以置换掉父类的可变部分,但是子类却不可 ...
- scss 初学笔记 二 混合宏
混合宏 格式 @mixin 定义混合宏 (相当于变量声明 var $ ?) //不带参数混合宏 @mixin borderRadius{ -webkit-border-radius: 5px; b ...
- 可等待计时器添加APC测试
可等待计时器和用户计时器的最大区别在于用户计时器需要在应用程序中使用大量的用户界面基础设施,从而消耗更多的资源.此外,可等待计时器是内核对象,这意味着他们不仅可以在多个线程间共享,而且具备安全性. 用 ...
- sp_getAppLock使用
sp_getAppLock 获取程序资源锁,简单的说就是调用此函数可以达到我们程序中.NET的lock锁的作用. 作用域是当前数据库下 四个参数: @resource(必填):资源名称,类型nvar ...
- 错误:The request sent by the client was syntactically incorrect的解决
问题: 错误400-The request sent by the client was syntactically incorrect. springMVC中,某个页面提交时报400错误,如下图. ...
- 【转】 要做linux运维工程师的朋友,必须要掌握以下几个工具才行
本人是linux运维工程师,对这方面有点心得,现在我说说要掌握哪方面的工具吧 说到工具,在行外可以说是技能,在行内我们一般称为工具,就是运维必须要掌握的工具. 我就大概列出这几方面,这样入 ...
- SQL语句-SELECT语句
select语句 Select语句是指从现存的一个或多个表中查看满足条件的数据 Select语句常规用法: 查看表中所有数据 Select * from students; 查看所有的sid和snam ...
- JVM的内存分区
JVM的内存分区 这篇文章尝试讨论清楚JVM的内存分区情况. 1. JVM的内存和系统内存的关系 下图是对系统内存及JVM内存的大致描绘 对大多数操作系统,内存可以分为物理内存RAM及Sw ...
- Failed to get D-Bus connection: Operation not permitted解决
docker中安装centos无法使用systemctl命令管理进程,报以下错误: Failed to get D-Bus connection: Operation not permitted 原因 ...
- C语言的格式符
转至:http://blog.csdn.net/zhanzheng520/article/details/10434791 一.格式符含义 1.d格式符:按十进制格式输出. %d ...