hdu 1099 Lottery
2012-01-10 15:18
141 查看
//求 n(1+1/2+1/3+....1/n)------m+a/b
犯了好几个错误 检查了 两个小时 ,咕~~(╯﹏╰) 很水的题 ,老犯逻辑错误 哎 要命
//原题链接http://acm.hdu.edu.cn/showproblem.php?pid=1099
#include<iostream>
#include<cstdio>
using namespace std;
typedef __int64 int64;
int64 gcd(int64 a ,int64 b)
{
return b==0?a:gcd(b,a%b);
}
int main()
{
int64 n,i,j,m;
int64 a,b,temp;
while(scanf("%I64d",&n)!=EOF)
{
m=1,a=1,b=2;
if(1==n)
printf("1\n");
else if(2==n)
printf("3\n");
else if(n==3)
printf(" 1\n5 -\n 2\n");
else if(n==4)
printf(" 1\n8 -\n 3\n");
else
{
for(i=3;i<=n;i++)
{
temp=b/gcd(b,i)*i;//b,i 的最小公倍数temp
a=temp/b*a+temp/i;
b=temp;
/*if(gcd(a,b)!=1)////
{
a=a/gcd(a,b);
b=b/gcd(a,b);害死我了
}*/
if(a>b)
{
m+=a/b;
a=a%b;
}
}
m=n*m+n*a/b;//不是n*(ab/)
a=n*a%b;
/* if(gcd(a,b)!=1)
{
a=a/gcd(a,b);
b=b/gcd(a,b);//a的值变了
}*/
temp=gcd(a,b);
if(temp!=1)
{
a=a/temp;
b=b/temp;
}
//
printf("a=%d** b=%d\n",a,b);
for(temp=b,j=0;temp!=0;)
{
temp=temp/10;
j++;
}
printf(" %I64d\n%I64d ",a,m);
for(i=0;i<j;i++)
printf("-");
printf("\n %I64d\n",b);
}
}
return 0;
}
犯了好几个错误 检查了 两个小时 ,咕~~(╯﹏╰) 很水的题 ,老犯逻辑错误 哎 要命
//原题链接http://acm.hdu.edu.cn/showproblem.php?pid=1099
#include<iostream>
#include<cstdio>
using namespace std;
typedef __int64 int64;
int64 gcd(int64 a ,int64 b)
{
return b==0?a:gcd(b,a%b);
}
int main()
{
int64 n,i,j,m;
int64 a,b,temp;
while(scanf("%I64d",&n)!=EOF)
{
m=1,a=1,b=2;
if(1==n)
printf("1\n");
else if(2==n)
printf("3\n");
else if(n==3)
printf(" 1\n5 -\n 2\n");
else if(n==4)
printf(" 1\n8 -\n 3\n");
else
{
for(i=3;i<=n;i++)
{
temp=b/gcd(b,i)*i;//b,i 的最小公倍数temp
a=temp/b*a+temp/i;
b=temp;
/*if(gcd(a,b)!=1)////
{
a=a/gcd(a,b);
b=b/gcd(a,b);害死我了
}*/
if(a>b)
{
m+=a/b;
a=a%b;
}
}
m=n*m+n*a/b;//不是n*(ab/)
a=n*a%b;
/* if(gcd(a,b)!=1)
{
a=a/gcd(a,b);
b=b/gcd(a,b);//a的值变了
}*/
temp=gcd(a,b);
if(temp!=1)
{
a=a/temp;
b=b/temp;
}
//
printf("a=%d** b=%d\n",a,b);
for(temp=b,j=0;temp!=0;)
{
temp=temp/10;
j++;
}
printf(" %I64d\n%I64d ",a,m);
for(i=0;i<j;i++)
printf("-");
printf("\n %I64d\n",b);
}
}
return 0;
}
相关文章推荐
- hdu 1099 lottery
- hdu 1099 Lottery
- hdu 1099 Lottery
- HDU 1099 Lottery
- hdu1099 lottery 假分式 字符串函数 strncpy sprintf 函数 数字输入字符数组 公约数
- hdu 1099 Lottery 解题分析
- HDU 1099 Lottery (数学问题模拟)
- hdu 1099 Lottery
- HDU—— 1099 Lottery
- hdu 1099
- HDUOJ 1099——Lottery
- 最短路题目整理 Hdu 2066 + 1839 + LightOJ 1099(次短路)
- hdu 1000-1099计划(31)
- HDU1099-概率论题
- hdoj 1099 Lottery(期望)
- HDU/HDOJ 1099 Lottery
- hdu 1000-1099计划(31)
- hdu 1099(数学)
- 杭电1099_Lottery——java
- HDU 1099 数学计算