任务描述
本关任务:编写一个能计算相同数字不同位数之和 的小程序。
编程要求
求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字,最后一项的位数为n。
例如用户输入a=1,n=3时表示要求1+11+111。
效果如下: 输入:1 2
输出:12
开始你的任务吧,祝你成功!
代码:
#include
using namespace std;
size_t Sum(size_t a, size_t n)
{
size_t sum = a, tmp = a;
size_t i = 0;
for (i = 1; i < n; i++)
{
tmp = tmp * 10 + a;
sum += tmp;
}
return sum;
}
int main()
{
int a = 0, n = 0;
cin >> a >> n;
cout << Sum(a, n);
return 0;
}
任务描述
本关任务:编写一个能计算n个整数的平均值的小程序。
编程要求
从键盘输入n个整数,编写程序计算其中所有整数的平均值。 输入包括2行: 第一行包含一个整数,表示输入的整数个数n, 第二行包含n个整数,用空格分隔。
效果如下: 输入: 6
-1 3 6 0 -5 4
输出: 1.16667
开始你的任务吧,祝你成功!
代码:
#include
using namespace std;
int main()
{
//获取参数方式 cin
//int x =0;
//cin >> x;
//结果输出使用 cout
//cout<<"1";
// 请在此添加你的代码
/********** Begin ********/
int a,b;
float sum,s;
cin>>a;
for(int i=1;i<=a;i++)
{
cin>>b;
sum=sum+b;
}
s=(sum)/a;
cout<
第3关:生成ISBN13编码
任务描述
本关任务:编写一个能生成ISBN13编码的小程序。
相关知识
SBN13号在2007年正式启用每本书的ISBN13号由五个部分构成:
例如:《C++程序设计(第2版)》的ISBN13号是978-7-302-21897-5,其中5为校验码。
算法
示范数据:7-5080-2710-8
编程要求
根据输入的ISBN13前四部分和校验算法,生成完整的ISBN13代码并输出。
注意:因为是机器自动判题,我们约定输入的前四部分的每位数字之间用空格隔开。
例如输入9 7 8 7 3 0 2 2 1 8 9 7,输出9787302218975。
效果如下: 输入:9 7 8 7 3 0 2 2 1 8 9 7
输出:9787302218975
开始你的任务吧,祝你成功!
代码:
#include
using namespace std;
int main()
{
//获取参数方式 cin
//int x =0;
//cin >> x;
//结果输出使用 cout
//cout<<"1";
// 请在此添加你的代码
/********** Begin ********/
int a,b,c,d,e,f,g,h,i,j,k,l,s,m,n;
cin>>a>>b>>c>>d>>e>>f>>g>>h>>i>>j>>k>>l;
s=a*1+b*3+c*1+d*3+e*1+f*3+g*1+h*3+i*1+j*3+k*1+l*3;
m=s%10;
n=10-m;
if(n==10)
cout<
任务描述
本关任务:编写一个能转换ISBN13和ISBN10的小程序。
相关知识
2007年之前国际标准书号使用ISBN10编码,ISBN10编码由4部分构成:出版国家或语言代码、出版社代码、书代码、校验码。而且,ISBN10的校验算法与ISBN13不同。
算法
10位ISBN的校验码计算公式:
ISBN: 7802253217
11-((7*10+8*9+0*8+2*7+2*6+5*5+3*4+2*3+1*2)%11)=7
如差为10
,则校验码为X
; 如差为11
,则校验码为0
。13位ISBN的校验码计算公式:
ISBN: 9787802253216
10-((9*1+7*3+8*1+7*3+8*1+0*3+2*1+2*3+5*1+3*3+2*1+1*3)%10)=6
如差为10
,则校验码为0
。编程要求
要求:在上一关练习题基础上,输入一个ISBN13码,首先通过校验算法判断其是否合法,是则输出对应的ISBN10编码(中间没有空格),否则输出“Error”。
详细情况和校验算法见附加的维基百科的说明文档。 注意:因为是机器自动判题,我们约定输入的前四部分的每位数字之间用空格隔开。
效果如下:
输入:9 7 8 7 3 0 2 2 1 8 9 7 5
输出:7302218974
开始你的任务吧,祝你成功!
代码:
#include
using namespace std;
int main()
{
//获取参数方式 cin
//int x =0;
//cin >> x;
//结果输出使用 cout
//cout<<"1";
// 请在此添加你的代码
/********** Begin ********/
int a,b,c,d,e,f,g,h,i,j,k,l,m,S,N,M;
cin>>a>>b>>c>>d>>e>>f>>g>>h>>i>>j>>k>>l>>m;
int checksum = 10-(a*1+b*3+c*1+d*3+e*1+f*3+g*1+h*3+i*1+j*3+k*1+l*3)%10;
if(checksum == m)
{
int finnal_bit = 11-(10*d+9*e+8*f+7*g+6*h+5*i+4*j+3*k+2*l)%11;
if(finnal_bit == 10)
cout<