我是靠谱客的博主 默默小松鼠,这篇文章主要介绍uva 10494 - If We Were a Child Again,现在分享给大家,希望可以做个参考。

这道题给的数据非常重要   只要注意到了不用大数的除法都可以做   

因为除数是有限大的  用整形就能保存下来    然后就简单了 模拟四则运算   很容易就能做出来了    取模也是一样的

字符串的比较函数用着老错  自己写了一个

下面看代码

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include<cstdio> #include<cstring> #define MAX 1000000 #define LL long long char str[MAX],result[MAX]; void Mod(char *s) { int str_len = strlen(str); int s_len = strlen(s); LL c = 0; for(int i = 0; i < s_len; i++) c =c*10+(s[i]-'0'); LL sum = 0; for(int i = 0; i < str_len; i++) { sum = sum*10 + (str[i] - '0'); if(sum >= c) sum %= c; } printf("%lldn",sum); } int cmp(char *p,char *q) { if(strlen(p)<strlen(q))return 1; if(strlen(p)>strlen(q))return 0; for(int i = 0; i < strlen(q); i++) if(p[i] > q[i])return 0; else if(p[i] < q[i])return 1; return 0; } void Division(char *s) { int str_len = strlen(str); int s_len = strlen(s); LL c = 0; for(int i = 0; i < s_len; i++) c =c*10+(s[i]-'0'); LL sum = 0; int flag = 0; for(int i = 0; i < str_len; i++) { sum = sum*10 + (str[i] - '0'); if(sum >= c) { flag = 1; printf("%lld",sum/c); sum %=c; } else if(flag) printf("0"); } printf("n"); } int main() { #ifdef LOCAL freopen("in.txt","r",stdin); #endif // LOCAL char sign,c[15]; while(scanf("%s %c %s",str,&sign,c)!=EOF) { if(sign == '%') { if(cmp(str,c)){puts(str);continue;} if(strcmp(str,c)==0){printf("0n");continue;} Mod(c); } else { if(cmp(str,c)){printf("0n");continue;} if(strcmp(str,c) == 0){printf("1n");continue;} Division(c); } } return 0; }


最后

以上就是默默小松鼠最近收集整理的关于uva 10494 - If We Were a Child Again的全部内容,更多相关uva内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部