#K4002. C4.02 高精度(二)

C4.02 高精度(二)

一、程序阅读。

#include<bits/stdc++.h>
using namespace std;
string a,b;
int c[102],d[102],s[204],o[204];
int main() {
	cin>>a>>b;
	for(int i=a.size()-1,k=1; i>=0; i--,k++) {
		c[k]=a[i]-'0';
	}
	for(int i=b.size()-1,k=1; i>=0; i--,k++) {
		d[k]=b[i]-'0';
	}
	for(int i=1; i<=a.size(); i++) {
		for(int j=1; j<=b.size(); j++) {
			s[i+j-1]=s[i+j-1]+c[i]*d[j];
		}
	}
	for(int i=1; i<=a.size()+b.size()-1; i++) {
		if(s[i]>=10) {
			s[i+1]=s[i+1]+s[i]/10;
			s[i]=s[i]%10;
		}
	}
	int l=a.size()+b.size();
	while(s[l]==0&&l>1) {
		l--;
	}
	for(int i=l; i>=1; i--) {
		cout<<s[i];
	}
	return 0;
}

判断题

  1. 程序可以输入任意字符?( ) {{ select(1) }}
  1. 第9行的代码c[k]=a[i]-'0',可以改成c[k]=a[i]-48?( ) {{ select(2) }}
  1. 第22行表示两个数相加结果长度一定等于最大长度a.size()+b.size()-1?( ) {{ select(3) }}
  1. 第4行代码放在第5行下面程序结果不会出现任何问题?( ) {{ select(4) }}

选择题

  1. 程序中输入100 10 10 10,最后程序中结果等于多少?( ) {{ select(5) }}
  • 1000
  • 100
  • 10000
  • 100000

二、程序填空

题目描述

输入一个大于0的大整数N,长度不超过100位,要求输出其除以13得到的商和余数。

输入格式

一个大于0的大整数,长度不超过100位。

输出格式

两行,分别为整数除法得到的商和余数。

2132104848488485
164008065268345
0
#include<bits/stdc++.h>
#include<string>
using namespace std;
string a;
int b=13;
int s=0;
int j[102],k[102];
int main() {
	cin>>a;
	for(int i=0; i<a.size(); i++) {
		k[i]=a[i]-'0';
	}
	for(int i=0; i<a.size(); i++) {
		s=s*10+k[i];
		___①___
		___②___
	}
	int l=___③___;
	while(___④___) {
		l++;
	}
	for(; l<a.size(); l++) {
		cout<<j[l];
	}
	cout<<endl;
	cout<<___⑤___;
	return 0;
}
  1. 第①处应该填写。( ) {{ select(6) }}
  • j[i]=s/13;
  • a[i]=s/13;
  • j[i-1]=k[i]/13;
  • j[i]=s%13;
  1. 第②处应该填写。( ) {{ select(7) }}
  • s=s%13;
  • s=s/13;
  • s=k[i]%13;
  • s=k[i]/13;
  1. 第③处应该填写。( ) {{ select(8) }}
  • 0
  • 1
  • 3
  • 4
  1. 第④处应该填写。( ) {{ select(9) }}
  • j[l]==0&&l<a.size()-1
  • j[l]==0&&l<a.size()
  • j[l-1]==0&&l<a.size()-1
  • j[l-1]==0&&l<a.size()
  1. 第⑤处应该填写。( ) {{ select(10) }}
  • s
  • a
  • b
  • s/10