题目内容:
分数可以表示为“分子/分母”的形式。编写一个程序,要求用户输入一个分数,然后将其约分为最简分式。最简分式是指分子和分母不具有可以约分的成分了。如6/12可以被约分为1/2。当分子大于分母时,不需要表达为整数又分数的形式,即11/8还是11/8;而当分子分母相等时,仍然表达为1/1的分数形式。
输入格式:
输入在一行中给出一个分数,分子和分母中间以斜杠“/”分隔,如: 12/34 表示34分之12。分子和分母都是正整数(不包含0)。
输出格式:
在一行中输出这个分数对应的最简分式,格式与输入的相同,即采用“分子/分母”的形式表示分数。如 5/6 表示 6分之5
输入样例:
60/120
输出样例:
1/2
ç»ä½ ä¸æè·¯å§
第ä¸ä¸ª ç´ æ°ç®æ³ä¸å¥½ æ¹ç¨ç´ æ°ç 没å¬è¯´è¿çè¯ èªå·±æ å¾å¸¸ç¨çç®æ³
第äºä¸ª 对äºaå æ±ä¸ªä½æ° ç¶åæç §ä½ çç®æ³æ±å¼
å¦æè¿æ¯è¶ æ¶çè¯
é£ä¹è¿è¡æåéå½
类似äº
int get_value(int a, int b){
int t;
if(b == 1) return a;
t = get_value(a, b/2);
if(b&1)return t*t*a%10;
else return t*t%10;
}
int main()
{
....
get_value(a%10, b);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答 推荐于2017-09-07
#include <stdio.h>
int cacu(int a,int b){ //此函数传入分子a和分母b,返回最大公约数
int temp;
while(b!=0)
{
temp=a%b;
a=b;
b=temp;
}
return a;
}
int main()
{
int a, b;
scanf("%d/%d", &a, &b);
int c = cacu(a,b);
a /= c;
b /= c;
printf("%d/%d\n", a, b);
return 0;
}本回答被提问者采纳
int cacu(int a,int b){ //此函数传入分子a和分母b,返回最大公约数
int temp;
while(b!=0)
{
temp=a%b;
a=b;
b=temp;
}
return a;
}
int main()
{
int a, b;
scanf("%d/%d", &a, &b);
int c = cacu(a,b);
a /= c;
b /= c;
printf("%d/%d\n", a, b);
return 0;
}本回答被提问者采纳
第2个回答 2015-02-09
打表法求素数,速度快,不会超时。
#include<stdio.h>
int main()
{
int a[10001],i,j,x,sum;
for (i=0;i<10001;i++) a[i]=1;
a[0]=0;a[1]=0;
for (i=2;i<10001;i++)
for (j=i;j<=10000/i;j++)
a[i*j]=0; /*打表*/
scanf("%d",&x);
while (x!=0)
{
sum=0;
for (i=2;i<=x/2;i++)
if ((a[i])&&(a[x-i])&&(i!=(x-i))) sum++;
printf("%d\n",sum);
scanf("%d",&x);
}
}
第二题找规律即可
0 | 只能是0
1 | 只能是1
2 | 2 4 8 6
3 | 3 9 7 1
4 | 4 6
5 | 只能是5
6 | 只能是6
7 | 7 9 3 1
8 | 8 4 2 6
9 | 9 1
#include<stdio.h>
int main()
{
int a[10001],i,j,x,sum;
for (i=0;i<10001;i++) a[i]=1;
a[0]=0;a[1]=0;
for (i=2;i<10001;i++)
for (j=i;j<=10000/i;j++)
a[i*j]=0; /*打表*/
scanf("%d",&x);
while (x!=0)
{
sum=0;
for (i=2;i<=x/2;i++)
if ((a[i])&&(a[x-i])&&(i!=(x-i))) sum++;
printf("%d\n",sum);
scanf("%d",&x);
}
}
第二题找规律即可
0 | 只能是0
1 | 只能是1
2 | 2 4 8 6
3 | 3 9 7 1
4 | 4 6
5 | 只能是5
6 | 只能是6
7 | 7 9 3 1
8 | 8 4 2 6
9 | 9 1
第3个回答 2019-11-19
#include<stdio.h>
int main()
{
int a[10],i,n,t;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
scanf("%d",&t);
for(i=n-1;i>=0&&t<a[i];i--)
a[i+1]=a[i];
a[i+1]=t;
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("%d\n",a[n]);
return 0;
}
int main()
{
int a[10],i,n,t;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
scanf("%d",&t);
for(i=n-1;i>=0&&t<a[i];i--)
a[i+1]=a[i];
a[i+1]=t;
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("%d\n",a[n]);
return 0;
}
第4个回答 2019-05-07
#include <stdio.h>
#include <stdlib.h>
int main()
{int a,b,i;
scanf("%d/%d",&a,&b);
for(i=2;i<=a;i++){
if(a%i==0&&b%i==0){
a=a/i;
b=b/i;
i=1;
}
}
printf("%d/%d",a,b);
return 0;
}
#include <stdlib.h>
int main()
{int a,b,i;
scanf("%d/%d",&a,&b);
for(i=2;i<=a;i++){
if(a%i==0&&b%i==0){
a=a/i;
b=b/i;
i=1;
}
}
printf("%d/%d",a,b);
return 0;
}