早教吧作业答案频道 -->其他-->
C语言题,急!可以适量的用点C++问题描述:每本书籍都有一个ISBN号码,ISBN号为一个由10个数码组成的的字符串,如果第一个数字乘以10加上第二个数字乘以9…的和,是11的倍数,则该ISBN号
题目详情
C语言题,急!可以适量的用点C++
问题描述:
每本书籍都有一个ISBN号码,ISBN号为一个由10个数码组成的的字符串,如果第一个数字乘以10加上第二个数字乘以9…的和,是11的倍数,则该ISBN号码为合理的号码,否则不合理。如字符串“0201103311”就是一个合理的ISBN号码,因为
10*0 + 9*2 + 8*0 + 7*1 + 6*1 + 5*0 + 4*3 + 3*3 + 2*1 + 1*1 = 55是11的倍数。而在实际应用中,可以在最后一个字符处使用字符X来表示十进制数10。如“156881111X”也是一个合理的ISBN号码。下面输入一些ISBN号码,其中有一个字符没有给出,请你计算出这个数字。
输入格式:
第一行一个正整数t(≤100),表示数据组数,接下来t行,每行一个长度为10的字符串,仅含有0~1、X和?,其中“?”表示对应位置上的数字没有给出。
输出格式:
对应每组数据,计算出对应的“?”的值。如果没有任何一个符号使之合理,则输出-1。
样例输入
2
15688?111X
156881111?
样例输出
1
X
问题描述:
每本书籍都有一个ISBN号码,ISBN号为一个由10个数码组成的的字符串,如果第一个数字乘以10加上第二个数字乘以9…的和,是11的倍数,则该ISBN号码为合理的号码,否则不合理。如字符串“0201103311”就是一个合理的ISBN号码,因为
10*0 + 9*2 + 8*0 + 7*1 + 6*1 + 5*0 + 4*3 + 3*3 + 2*1 + 1*1 = 55是11的倍数。而在实际应用中,可以在最后一个字符处使用字符X来表示十进制数10。如“156881111X”也是一个合理的ISBN号码。下面输入一些ISBN号码,其中有一个字符没有给出,请你计算出这个数字。
输入格式:
第一行一个正整数t(≤100),表示数据组数,接下来t行,每行一个长度为10的字符串,仅含有0~1、X和?,其中“?”表示对应位置上的数字没有给出。
输出格式:
对应每组数据,计算出对应的“?”的值。如果没有任何一个符号使之合理,则输出-1。
样例输入
2
15688?111X
156881111?
样例输出
1
X
▼优质解答
答案和解析
#include
int main()
{
\x09char a[10] = "15688?111X";
\x09int temp = 0;
\x09int index;
\x09int i;
\x09for(i=0;i<10;i++)
\x09{
\x09\x09if(a[i]=='X')
\x09\x09\x09a[i]=':';
\x09\x09else if(a[i]=='?')
\x09\x09{
\x09\x09\x09a[i]='0';
\x09\x09\x09index=i;
\x09\x09}
\x09\x09temp = temp + (a[i]-48)*(10-i);
\x09printf("temp = %d",temp);
\x09}
\x09printf("index = %d",index);
\x09for(i=0;i<=10;i++)
\x09{
\x09\x09temp = temp + i*(10-index);
\x09\x09if(temp%11==0)
\x09\x09{
\x09\x09\x09if(i==10)
\x09\x09\x09\x09printf("X");
\x09\x09\x09
\x09\x09\x09printf("%d",i);
\x09\x09\x09break;
\x09\x09}
\x09\x09else
\x09\x09\x09temp = temp - i*(10-temp);
\x09\x09
\x09\x09printf("temp = %d",temp);\x09
\x09}
\x09return 0;
}
char a里面是字符,所以要转化为ascii~~~
int main()
{
\x09char a[10] = "15688?111X";
\x09int temp = 0;
\x09int index;
\x09int i;
\x09for(i=0;i<10;i++)
\x09{
\x09\x09if(a[i]=='X')
\x09\x09\x09a[i]=':';
\x09\x09else if(a[i]=='?')
\x09\x09{
\x09\x09\x09a[i]='0';
\x09\x09\x09index=i;
\x09\x09}
\x09\x09temp = temp + (a[i]-48)*(10-i);
\x09printf("temp = %d",temp);
\x09}
\x09printf("index = %d",index);
\x09for(i=0;i<=10;i++)
\x09{
\x09\x09temp = temp + i*(10-index);
\x09\x09if(temp%11==0)
\x09\x09{
\x09\x09\x09if(i==10)
\x09\x09\x09\x09printf("X");
\x09\x09\x09
\x09\x09\x09printf("%d",i);
\x09\x09\x09break;
\x09\x09}
\x09\x09else
\x09\x09\x09temp = temp - i*(10-temp);
\x09\x09
\x09\x09printf("temp = %d",temp);\x09
\x09}
\x09return 0;
}
char a里面是字符,所以要转化为ascii~~~
看了C语言题,急!可以适量的用点C...的网友还看了以下:
数据结构时间复杂度问题一个算法所需时间由以下递归算法表示,试求出该算法的时间复杂度的级别当n=1时 2020-05-01 …
难题!可以证明,对任意的n属于N+,有(1+2+……+n)^2=1^3+2^3+……n^3成立,下 2020-05-14 …
数列a(n+1)=an+1/an问题求ana(n+1)=an+1/an就是第n+1项等于第n项加上 2020-05-17 …
某厂2006年的产值为a万元,预计产值每年以n%递增,则该厂到2018年的产值(单位:万元)是() 2020-06-14 …
(A/P,i,n)=(A/F,i,n)+i或(A/F,i,n)=(A/P,i,n)-i我已经知道怎 2020-07-23 …
(x-y)(x+y)=x^2-y^2(x-y)(x^2+xy+y^2)=x^3-y^3……(x-y) 2020-11-03 …
n∑c=cn,这里面西格玛没有旁边的那个玩意儿,那我应该怎么去理解为甚麽乘i=1以n就等于cn呢? 2020-12-06 …
某企业在某年度之初借款A元,从该年度末开始,每年度偿还一定的金额,恰在n年内还清,年利率为r(以复利 2020-12-26 …
请教一个递推数列的问题,an+1=kan+f(n)型的递推数列,方法是两边同时除以k^n+1,然后构 2020-12-28 …
关于n!阶乘符号的一个疑问n!=0时和1时n的值为什么是1n>1时n的值是n*(n-1)这个可以理解 2021-01-09 …