2021/4/21—笔记001
- L1-009 N个数求和
处理分数(a/b)
1.分数输入
scanf("%d/%d", &a, &b);
2.分数相加并约分
nume = nume * b + a * deno; //通分之后的分子
deno *= b; //通分之后的分母
divisor = GCD(abs(nume), abs(deno)); //divisor为最大公因数
nume /= divisor; //分子约分
deno /= divisor; //分母约分
-
GCD函数能返回两个数中的最大公约数。
int GCD (int a ,int b ) { if(b==0) return a; else return GCD(b,a%b); }
-
abs函数用于取该数的绝对值。
3.有理形式输出
if (deno < 0) //分母为负时需要变号
{
deno = -deno;
nume = -nume;
}
if (nume && nume / deno == 0)//真分数
printf("%d/%d\n", nume, deno);
else if (nume%deno == 0)//整数
printf("%d\n", nume / deno);
else//假分数
printf("%d %d/%d\n", nume / deno, nume%deno, deno);
- L1-011 A-B
字符串删除匹配
ASCII码在0-255之间,所以用book数组标记所有的ASCII码.
如果第二个字符出现了这个ACSII码那就标记为1。
然后输出的时候当book数组对应的那个ASCII为1的时候就跳过不输出。