uva 10494 大数
发布时间:2020-12-14 04:03:21 所属栏目:大数据 来源:网络整理
导读:#include iostream#include cstdio#include cstring#include cmathusing namespace std;const long long MAXN = 1000000;char str[MAXN];char newstr[MAXN];long long n;int main(){char ch;memset(str,sizeof(str));while (scanf("%s",str) != EOF ){memset
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> using namespace std; const long long MAXN = 1000000; char str[MAXN]; char newstr[MAXN]; long long n; int main() { char ch; memset(str,sizeof(str)); while (scanf("%s",str) != EOF ) { memset(newstr,sizeof(newstr)); n = 0 ; ch = getchar(); while (ch == ' ') ch = getchar(); cin >> n ; getchar(); long long mod = 0 ; long long num = 0 ; long long len = strlen(str); if (ch == '%') { for (long long i = 0 ; i < len ; i++) { mod = mod*10 + str[i] - '0'; if (mod >= n) mod = mod % n ; //我们每次都去掉n,减少计算规模 } cout<<mod<<endl; } int flag=0,k=0; int flag1 = 0 ; if (ch == '/') { for (long long i = 0 ; i < len ; i++) // 小于 n 的判断 { num = num * 10 + str[i] - '0' ; if (num >= n) { flag1 = 1; break; } } num = 0 ; if ( !flag1 ) cout<<'0'<<endl; else { for (long long i = 0 ; i < len ; i++) //手动模拟除法 { num = num*10 + str[i] - '0'; if (num < n && flag ) // 第一位数是0的话是不被我们记录的 newstr[k++] = '0' ; if ( num >= n ) { flag = 1 ; newstr[k++] = num/n + '0' ; num %= n ; } } cout<<newstr<<endl; } memset(str,sizeof(str)); } } return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |