算法入门题-8月30日
第一题:最大公因数(**)
内容: 简体->正體
给定两个数字,请得出它们的最大公因数
输入说明:
两个整数 大于 0, 小于 2^31
输出说明:
最大公因数为一整数
范例输入:
12 15
范例输出 :
3
第二题:
阶乘运算
内容: 简体->正體
给定一个 n 值,请计算出 n! 的结果
输入说明:
输入一个整数 n
输出说明:
输出 n! 结果,结果不大于 2^63
范例输入:
0 1 5
范例输出 :
1 1 120
[ 本帖最后由 evilknight 于 2009-8-30 22:07 编辑 ] 第一题:
#include "stdafx.h"
#include <iostream.h>
#include <stdio.h>
#include <string.h>
int main()
{
int a,b,max=0;
cout<<"Input two numbera!"<<endl;
for(int j=0;j<1;j++){
cin>>a;
//flush;
cin>>b;}
if(a>b)
{
for (int i=1;i<b;i++)
{
if (a%i==0&&b%i==0)
{
max=i;
}
}
cout<<max<<endl;
}
if(a<b)
{
for (int i=1;i<a;i++)
{
if (a%i==0&&b%i==0)
{
max=i;
}
}
cout<<max<<endl;
}
return 0;
第二题:
#include "stdafx.h"
#include <iostream.h>
#include <stdio.h>
#include <string.h>
int main()
{
int n,sun=1;
cout<<"Input"<<endl;
cin>>n;
if (n==0)
{
cout<<1<<endl;
}
else
{
for (int i=1;i<=n;i++)
{
sun*=i;
}
cout<<sun<<endl;
}
return 0;
}
本来想用梯归的,但还是没掌握好,用不出来。
/**********************************************************************************/
/*Problem: a024 "最大公因數(**)" */
/*Language: C */
/*Result: AC (10ms, 360KB) on ZeroJudge */
/*Author: MicroQ */
/**********************************************************************************/
#include <stdio.h>
long long int f(long long int a, long long int b)
{
long long int t;
while (a%b)
{
t = b;;
b = a%b;
a = t;
}
return b;
}
int main(void)
{
long long int a,b;
while ( scanf("%lld%lld",&a, &b) > 0)
printf("%lld\n", f(a,b));
return 0;
}
#include <stdio.h>
int main(void)
{
long long int sum;
int n, i;
while (scanf("%d", &n) > 0)
{
sum = 1;
for (i = 2; i <= n; ++i)
sum *= i;
printf("%lld\n", sum);
}
return 0;
}
页:
[1]