A/B Problem
时间限制:
1000 ms | 内存限制:
65535 KB
难度:
3
-
描述
-
做了A+B Problem,A/B Problem不是什么问题了吧!
-
输入
- 每组测试样例一行,首先一个号码A,中间一个或多个空格,然后一个符号( / 或者 % ),然后又是空格,后面又是一个号码B,A可能会很长,B是一个int范围的数。 输出
- 输出结果。 样例输入
-
110 / 100 99 % 10 2147483647 / 2147483647 2147483646 % 2147483647
样例输出
-
1 9 1 2147483646
大数除小数和大数取余小数
#include <stdio.h>
#include <string.h>
int a[1000], b, len;
char x, n[1000];
void change()
{
int i;
len = strlen(n);
for(i = 0; i < len; i++)
{
a[i] = n[i] - '0';
}
}
void chu()
{
int s = 0, i, f = 0;
for(i = 0; i < len; i++)
{
s = s * 10 + a[i];
if(s / b || f)
{//f是为了防止商的第一个值输出的是0
printf("%d", s / b);
s %= b;
f = 1;
}
}
if(f == 0)//得数是0
printf("0");
printf("\n");
}
void yu()
{
int i;
int s = 0;
for(i = 0; i < len; i++)
{
s = s * 10 + a[i];
s %= b;
}
printf("%lld\n", s);
}
int main (void)
{
while(scanf("%s %c %d", n, &x, &b) != EOF)
{
change();
if(x == '/')
chu();
else
yu();
}
return 0;
}
开方数
时间限制:
500 ms | 内存限制:
65535 KB
难度:
3
-
描述
-
现在给你两个数 n 和 p ,让你求出 p 的开 n 次方。
-
输入
- 每组数据包含两个数n和p。当n和p都为0时表示输入结束。(1<=n<=200,1<=p<=10^101) 输出
- 对于每个输出对用输出开方后的结果k(结果小于10^9)。 样例输入
-
2 16 3 27 7 4357186184021382204544 0 0
样例输出
-
4 3 1234
学到了= = 开方也能用pow做, 求p的开n次方,其实就是p的1/n次方
#include<stdio.h>
#include<math.h>
int main()
{
double n, p;
while(scanf("%lf %lf",&n, &p)!=EOF)
{
if(n == 0 && p == 0)
break;
printf("%.lf\n", pow(p, 1.0 / n));
}
return 0;
}