本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B * Q + R成立。
输入格式:
输入在1行中依次给出A和B,中间以1空格分隔。
输出格式:
在1行中依次输出Q和R,中间以1空格分隔。
输入样例:
123456789050987654321 7
输出样例:
17636684150141093474 3 思路: 一定要注意输入变量之间的联系
1 #include<iostream> 2 using namespace std; 3 #include<string.h> 4 #include<stdio.h> 5 int main(int argc, char *argv[]) 6 { 7 char Number[1010]; 8 char resul[1010]; 9 char Chushu; 10 cin>>Number>>Chushu; 11 bool flag=true; //第一位数 12 int j=0; 13 int reminder=0; 14 int B=Chushu-48; 15 for(int i=0;Number[i]!=‘\0‘;i++) 16 { 17 int A=Number[i]-48; 18 A=reminder*10+A; 19 int C=A/B; 20 int D=A%B; 21 // cout<<C<<endl<<D<<endl; 22 if(flag) 23 { 24 flag=false; 25 if(C>0) 26 resul[j++]=C+48; 27 else if(C==0&&Number[1]==‘\0‘) 28 resul[j++]=C+48; 29 reminder=D; 30 continue; 31 } 32 else 33 { 34 resul[j++]=C+48; 35 reminder=D; 36 37 } 38 } 39 resul[j]=‘\0‘; 40 printf("%s %d\n",resul,reminder); 41 return 0; 42 }
时间: 2024-11-05 20:54:46