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++){ // ...
随机推荐
- python3 第十一章 - 数据类型之str(字符串)
字符串是 Python 中最常用的数据类型,我们可以使用引号 ' 或 " 来创建字符串,例如: name = 'roy' sex = "男" 1.访问字符串中的值 Pyt ...
- ListCtrl控件
一 CListCtrl类型 LVS_EDITLABELS LVS_OWNERDRAWFIXED LVS_REPORT LVS_SHOWSELALWAYS LVS_SINGLESEL LVS_SMALL ...
- C/C++基础知识总结
[006] HIWORD宏取高16位. [005] 使用strcmp需判断参数是否为NULL [004] main函数的第三个参数envp 有的编译器支持三个参数的main函数,但不推荐这么写. [0 ...
- sqlserver 字符串截取与拼接
update yanan set name=name+right(phone,4) where id=56 其中right(phone,4)是截取手机号后四位,left是从左开始截取.name=nam ...
- Gitlab备份与恢复[七]
标签(linux): git 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 备份 配置文件中加入 gitlab_rails['bakup_path']='/da ...
- JS-使用工厂方法创建对象
function createPerson(name,age,gender){ //创建新对象 var obj=new Object(); //向对象中添加属性 obj.name=name; obj. ...
- c#后台调用API
前两周赶上项目第一个版本上线,着实忙了一把,毕竟只有两个人负责.如今已完结,总算喘了一口气,现在任务就是写API.测API,许久之前写过JS前台调用 项目API,也写过后台调用开放的手机号归属地查询, ...
- 程序员之殇 —— (Are you afraid of me? Don't be.)灵感=神秘感
Are you afraid of me? (你们怕我吗?) Don't be.(不用怕) I am a programmer who just won't die.(我是不会死的程序员) 自从跟踪到 ...
- Azure Functions + Azure Batch实现MP3音频转码方案
客户需求 客户的环境是一个网络音乐播放系统,根据网络情况提供给手机用户收听各种码率的MP3歌曲,在客户没购买歌曲的情况下提供一个三十秒内的试听版本.这样一个系统非常明确地一个需求就是会定期需要将一批从 ...
- VBoxManage命令速记
1.IDE控制器创建:VBoxManage storagectl testvm --name "IDE Controller" --add ide卸载VBoxManage stor ...