hdoj 1089__1099

/*{
 *int m;
 scanf("%d",&m);
 for(int i=0;i<m;i++)
 {
  int a,b;
  scanf("%d%d",&a,&b);
  printf("%d/n",a+b);
 }
 return  0;
}{
 int m,n;
 
 while(scanf("%d%d",&m,&n)!=EOF)
 {
  if(m==0&&n==0)
   break;
  printf("%d/n",m+n);
 
 }
 return 0;
}{
 int m;
 int n;
 while(scanf("%d",&m)!=EOF)
 {
  if(m==0)
   break;
  else
  {
   int sum=0;
   for(int i=0;i<m;i++)
   {
     scanf("%d",&n);
     sum=sum+n;
   }
   printf("%d/n",sum);
  }
 }
 return 0;
}{
 int m;
 int n;
 int k;
 scanf("%d",&m);
 for(int i=0;i<m;i++)
 {
  scanf("%d",&n);
  int sum=0;
  for(int j=0;j<n;j++)
  {
   scanf("%d",&k);
   sum+=k;
  }
  printf("%d/n",sum);
 }
 return 0;
}
{
 int m;
 int sum;
 int n;
 while(scanf("%d",&m)!=EOF)
 {
  sum=0;
  for(int i=0;i<m;i++)
  {
   scanf("%d",&n);
   sum+=n;
  }
  printf("%d/n",sum);
 }
 return 0;
}{
 int m,n;
 while(scanf("%d%d",&m,&n)!=EOF)
 {
  printf("%d/n",m+n);
  printf("/n");
 }
 return 0;
}#include<stdio.h>
int main()
{
 int m;
 int n;
 int sum,k;
 scanf("%d",&m);
 for(int i=0;i<m;i++)
 {
  scanf("%d",&n);
  sum=0;
  for(int j=0;j<n;j++)
  {
   scanf("%d",&k);
   sum+=k;
  }
  printf("%d/n",sum);
  if(i+1!=m)
   printf("/n");
 }
}*/
#include<iostream>  
using namespace std;  
int gcd(int n,int m)//求最大公约数  
{  
    if(n%m==0)  
    {  
        return m;  
    }  
    else 
    {  
        return gcd(m%n,n);  
    }  
}  
int main()  
{  
    __int64 a,b,c,d,n,i,j,k;  
    __int64 fenzi,fenmu;  
    while(cin>>n)  
    {  
            fenzi=1;//初始化分子分母  
       fenmu=1;  
        for(i=2;i<=n;i++)  
        {  
             a=gcd(fenmu,i);//最小最大公约数  
             b=(fenmu*i)/a; //最小公倍数  
             fenzi=(fenzi*(b/fenmu))+b/i;//计算分子  
             fenmu=b;  
        }  
        int num=0;  
        c=fenzi*n/fenmu;  
        fenzi=(fenzi*n)%fenmu;  
        a=gcd(fenzi,fenmu);  
        fenzi=fenzi/a;  
        d=fenmu/a;  
      
        if(fenzi==0)  
            cout<<c<<endl;  
       else 
      {  j=k=1;i=0;      
         int m=c;  
         while(m)  {m/=10;j++;k++;}  
         while(d)   {d=d/10;i++;}  
        while(k--)  
        cout<<" ";  
        cout<<fenzi<<endl;  
        cout<<c<<" ";  
        while(i--)  
        cout<<"-";  
        cout<<endl;  
        while(j--)  
        cout<<" ";  
        cout<<fenmu/a<<endl;  
       }  
 
 
      
    }  
    return 0;  

#include<iostream>  
using namespace std;  
int gcd(int n,int m)//求最大公约数  
{  
    if(n%m==0)  
    {  
        return m;  
    }  
    else 
    {  
        return gcd(m%n,n);  
    }  
}  
int main()  
{  
    __int64 a,b,c,d,n,i,j,k;  
    __int64 fenzi,fenmu;  
    while(cin>>n)  
    {  
            fenzi=1;//初始化分子分母  
       fenmu=1;  
        for(i=2;i<=n;i++)  
        {  
             a=gcd(fenmu,i);//最小最大公约数  
             b=(fenmu*i)/a; //最小公倍数  
             fenzi=(fenzi*(b/fenmu))+b/i;//计算分子  
             fenmu=b;  
        }  
        int num=0;  
        c=fenzi*n/fenmu;  
        fenzi=(fenzi*n)%fenmu;  
        a=gcd(fenzi,fenmu);  
        fenzi=fenzi/a;  
        d=fenmu/a;  
      
        if(fenzi==0)  
            cout<<c<<endl;  
       else 
      {  j=k=1;i=0;      
         int m=c;  
         while(m)  {m/=10;j++;k++;}  
         while(d)   {d=d/10;i++;}  
        while(k--)  
        cout<<" ";  
        cout<<fenzi<<endl;  
        cout<<c<<" ";  
        while(i--)  
        cout<<"-";  
        cout<<endl;  
        while(j--)  
        cout<<" ";  
        cout<<fenmu/a<<endl;  
       }  
 
 
      
    }  
    return 0;  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值