hdu 1099
来源:互联网 发布:评标专家库软件 编辑:程序博客网 时间:2024/06/03 19:41
原题目地址
http://acm.hdu.edu.cn/showproblem.php?pid=1099
点击打开链接
简单地描述一下提议
输入 2
输出 2/1 + 2/2 = 6/2 = 3
输入 3
输出 3/1 + 3/2 +3/3 = 5 1/3
输入 5
输出 5/1 + 5/2 +5/3 +5/4 +5/5 = 11 5/12
其他的自己照着推一下就出来了
直接上代码了
GCC编译器
#include <stdio.h>/** * 求最大公约数 */long long gcd(long long a,long long b){ if(b==0) return a; else return gcd(b,a%b);}int main(){ int i,n,size1,size2; long long number,n1,n2; long long integer;//整数部分 long long fenzi;//分子 long long fenmu;//分母 long long a[23];//a[n]表示输入为n时,从1到n这些数的最小公倍数 a[1]=1; for(i = 2;i<= 22 ; i++) a[i]=i*a[i-1]/gcd(i,a[i-1]);//两个数的最小公倍数等于这两个数的乘机除以他们的最大公约数 while(scanf("%d",&n)!=EOF) { fenzi=0; /** * fenzi = (最小公倍数 * n)/i */ for(i=1;i<=n;i++) fenzi += a[n]/i; fenzi *= n; number = gcd(fenzi,a[n]); //分子分母的最大公约数 fenzi = fenzi/number; //约分后的分子 fenmu = a[n]/number; //约分后的分母 integer = fenzi/fenmu; //结果的整数部分 fenzi = fenzi-integer*fenmu; //最终结果的分子 if(fenzi==0) { printf("%lld\n",integer); continue; } size1=size2=0; n1=integer; n2=fenmu; //整数的位数 while(n1!=0) { size1++; n1/=10; } //分母的位数 while(n2!=0) { size2++; n2/=10; } //按题目要求的格式打印结果 for(i=0;i<=size1;i++) printf(" "); printf("%lld\n",fenzi); printf("%lld ",integer); for(i=0;i<size2;i++) printf("-"); printf("\n"); for(i=0;i<=size1;i++) printf(" "); printf("%lld\n",fenmu); } return 1;}
0 0
- hdu-1099
- hdu 1099
- HDU/HDOJ 1099 Lottery
- hdu 1099 lottery
- hdu 1099 Lottery
- HDU 1099 数学计算
- hdu 1099 Lottery
- hdu 1099 Lottery
- hdu 1099 数学
- hdu 1099 Lottery
- 【数学】 HDU 1099 Lottery
- HDU ACM 1099 Lottery
- HDU 1099 Lottery 乐透彩
- HDOJ HDU 1099 Lottery
- hdu
- hdu
- HDU
- hdu ()
- 打包导出APK时报错“Export aborted because fatal lint errors were found”的解决办法
- 特种浓缩分离:带式压榨过滤机的特点
- UVA - 568 Just the Facts
- 类成员函数作为多线程的入口函数的实现方法
- Python中用zlib.decompress出错:error: Error -3 while decompressing data: incorrect header check
- hdu 1099
- 网易2011笔试题详解
- jni问题摘记
- 查看CPU信息
- 如何判断手机是否支持OTG
- Android中Animation的使用总结
- OC-内存管理之autorelease和release
- iOS中多任务
- WPF打开文件