题目描述
统计n个正整数的和,并用横式的算筹表示。例如:n=3,数为12 55 6134。和为6201,结果是:

图中0用半径为25的圆,每个线段长度是50,多个横线的相邻距离是10。所有算筹图形的底部在一个水平线上,相邻的图形间隔距离为20,颜色为黑色(0号)。
【提示】
数x最后一位是:x%10
数x去掉最后一位,可以写成:x = x/10;
【小知识】
0到9的横式算筹如下:

输入格式
第1行1个正整数n。n<10。
第2行n个正整数。
输出格式
相应的图形。
输入/输出例子1
输入:
2
102 8
输出:

参考答案
void chou(int a)
{
p.up().c(0);
if(a==0) p.fd(25).o(25).bk(25);
if(a==1)
p.rr(50,4);
if(a==2)
p.rr(50,4).fd(10).rr(50,4).bk(10);
if(a==3)
{
for(int i=0;i<3;i++)
p.rr(50,4).fd(10);
p.bk(30);
}
if(a==4)
{
for(int i=0;i<4;i++)
p.rr(50,4).fd(10);
p.bk(40);
}
if(a==5)
{
for(int i=0;i<5;i++)
p.rr(50,4).fd(10);
p.bk(50);
}
if(a==6)
{
p.rr(50,4).fd(25).rr(4,50).bk(25);
}
if(a==7)
{
p.rr(50,4).fd(10).rr(50,4);
p.fd(25).rr(4,50).bk(35);
}
if(a==8)
{
for(int i=0;i<3;i++)
p.rr(50,4).fd(10);
p.fd(15).rr(4,50).bk(45);
}
if(a==9)
{
for(int i=0;i<4;i++)
p.rr(50,4).fd(10);
p.fd(15).rr(4,50).bk(55);
}
}
int main(){
p.speed(9).moveTo(300,0);
int n,x,a=0,l;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>x;
a+=x;
}
for(;;)
{
l=a%10;
a=a/10;
chou(l);
p.lt(90).fd(70).rt(90);
if(a<1)
break;
}
p.hide();
return 0;
}
题目链接:
https://v1.51goc.com/question/viewProgram/21816
(进去后要登录)
