1029 求最大公约数
由键盘输入两个正整数m、n(m、n<1000000)
计算它们的最大公约数。
输入样例
16,24
输出样例
8
#include <stdio.h>
int main()
{
int m,n,r;
scanf("%d,%d",&m,&n);
r=m%n;
while(r!=0)
{
m=n;
n=r;
r=m%n;
}//辗转相除法
printf("%d",n);
return 0;
}
延伸:最小公倍数的求法
#include <stdio.h>
int main()
{
int m,n,i,temp;
scanf("%d,%d",&m,&n);
if(m<n)//要让m里面放大数
{
temp=m;
m=n;
n=temp;
}
for(i=m;i>0;i++) /*从大数开始寻找满足条件的自然数*/
{
if(i%m==0 && i%n==0)
{/*输出满足条件的自然数并结束循环*/
printf("最小公倍数为:%d",i);
break;
}
}
return 0;
}
1044 输出最小值
/*Description
从键盘输入十个整数,输出最小值
输入格式
输入的整数绝对值不会超过10000
输入样例
12 45 76 87 5 87 43 55 99 21
输出样例
5*/
#include<stdio.h>
int main()
{
int a[10],i,min;
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}//输入数组要用循环,这里之前写掉了
min=a[0];
for(i=0;i<10;i++)
{
if(a[i]<min)//这里是小于min,不是a[i]<a[i+1]
min=a[i];
}
printf("%d",min);
return 0;
}
1033 字符变换
/*Description
由键盘输入一个句子(字符个数不定,最多不超过80个,
以'\n'结束),将其中的大写字符变成小写
(其它类型的字符不变),
最后输出变换后的句子。
输入样例
ThiS IS My fIrSt C ProgrAm!
输出样例
this is my first c program!
*/
#include<stdio.h>
#include<string.h>
int main()
{
char a[80];//char类型 不要写成Int了
int i,m;
gets(a);
m=strlen(a);/*什么时候终止输入字符,
长度由strlen函数确定,要加头文件string.h*/
for(i=0;i<m;i++)
{
if(a[i]>='A'&&a[i]<='Z')
a[i]=a[i]+32;
}
puts(a);
return 0;
}
1037 计算数列和
编程实现,由键盘输入n,计算输出数列前n项和。
(结果保留四位小数,提示:要使用double,否则精度不够)
输入样例
20
输出样例
32.6603
#include <stdio.h>
int main()
{
int n,i,t;
double a=2,b=1,sum=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
sum=sum+(a/b);
t=a;
a=a+b;
b=t;
}
printf("%.4f",sum);
return 0;
}
1031 统计单词个数
/*Description
写一个函数实现:输入一行字符,以空格分割单词,
回车结束输入,输出单词的个数
输入样例
There are many students and many trees!
输出样例
7
*/
#include <stdio.h>
#include <string.h>
int main()
{
char a[80];
gets(a);
int l=strlen(a),count=0,i;
for(i=0;i<l;i++)
{
if(a[i]==' '&& a[i+1]!=' ')
count++;
}
printf("%d",count+1);
return 0;
}
1042 百万富翁
一个百万富翁遇到一个陌生人,陌生人找他谈了一个换钱的计划
。该计划如下:
我每天给你m元,
而你第一天只需给我一分钱。
第二天我仍给你m元,你给我2分钱。
第三天,我仍给你m元,你给我4分钱。
依次类推,你每天给我的钱是前一天的两倍,直到一个月(30天
百万富翁很高兴,欣然接受这个契约。
现要求,编写一个程序,由键盘输入m,
计算多少天后,百万富翁开始亏钱。
输入样例
100
输出样例
18
#include<stdio.h>
#include<math.h>
int main()
{
int i;//天数
float m;
scanf("%f",&m);
for(i=1;i<=30;i++)
{ //pow(x,y)表示x的y次方
if(i*m-0.01*(pow(2,i)-1)<0)
break;
}
printf("%d",i);
return 0;
}
测试题:求因子的个数
/*描述
由键盘输入一个int类型的正整数n,
求n有多少个不同的正整数因子。
注:能整除N的数称为N的因子
输入格式
正整数
输入样例
24
输出样例
8*/
#include <stdio.h>
int main()
{
int n,i,count=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
//一定要记住i只是循环次数,计数器要再定义一个count
{
if(n%i==0)
count++;
}
printf("%d",count);
return 0;
}