zoukankan      html  css  js  c++  java
  • 1503162139-ny-分数拆分

    分数拆分

    时间限制:3000 ms  |  内存限制:65535 KB
    难度:1
    描写叙述

    如今输入一个正整数k,找到全部的正整数x>=y,使得1/k=1/x+1/y.

    输入
    第一行输入一个整数n,代表有n组測试数据。
    接下来n行每行输入一个正整数k
    输出
    按顺序输出相应每行的k找到全部满足条件1/k=1/x+1/y的组合
    例子输入
    2
    2 
    12
    例子输出
    1/2=1/6+1/3
    1/2=1/4+1/4
    1/12=1/156+1/13
    1/12=1/84+1/14
    1/12=1/60+1/15
    1/12=1/48+1/16
    1/12=1/36+1/18
    1/12=1/30+1/20
    1/12=1/28+1/21
    1/12=1/24+1/24
    
    
    解题思路:
       能够将式子转化为1/k-1/y=1/x  通过观察能够发现,y是从k+1開始的,以x<y结束。
       (y-k)/(k*y)=1/x
       由于c语言中两个整数相除结果还是整数,避免5/2=2的情况出现,要事先(k*y)%(y-k),推断能否够整除。

    
    
    代码
    #include<stdio.h>
    int main()
    {
    	int n;
    	int k;
    	int x,y;
    	int i,j;
    	scanf("%d",&n);
    	while(n--)
    	{
    		scanf("%d",&k);
    		for(i=k+1;;i++)
    		{
    			if(i*k%(i-k)==0)//要事先推断一下能否够整除 
    			{
    				if(i*k/(i-k)>=i)
    				    printf("1/%d=1/%d+1/%d
    ",k,i*k/(i-k),i);
    				else
    				    break;
    			}
    		}
    	}
    	return 0;
    }


  • 相关阅读:
    Java面向对象
    Java方法
    Java控制语句
    Java接收用户键盘输入
    Java运算符
    Java类型转换
    Java的加载与执行
    Java关键字
    Java常见的DOS命令及JDK
    nginx学习要点记录
  • 原文地址:https://www.cnblogs.com/blfshiye/p/5382511.html
Copyright © 2011-2022 走看看