Description
给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123
Input
一个不大于5位的数字
Output
三行第一行 位数第二行 用空格分开的每个数字,注意最后一个数字后没有空格第三行 按逆序输出这个数
#include <iostream> using namespace std; int main() { int n; int a,b,c,d,e; cin>>n; a=n/10000; b=(n-10000*a)/1000; c=(n-10000*a-1000*b)/100; d=(n-10000*a-1000*b-100*c)/10; e=n-10000*a-1000*b-100*c-10*d; if(a!=0) { cout<<5<<endl; cout<<a<<" "<<b<<" "<<c<<" "<<d<<" "<<e<<endl; cout<<e<<d<<c<<b<<a; } else if(b!=0) { cout<<4<<endl; cout<<b<<" "<<c<<" "<<d<<" "<<e<<endl; cout<<e<<d<<c<<b; } else if(c!=0) { cout<<3<<endl; cout<<c<<" "<<d<<" "<<e<<endl; cout<<e<<d<<c; } else if(d!=0) { cout<<2<<endl; cout<<d<<" "<<e<<endl; cout<<e<<d; } else { cout<<1<<endl; cout<<e<<endl; cout<<e; } }
Description
输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数。
Input
一行字符
Output
统计值
#include <iostream> #include <string> using namespace std; int main() { string a; getline(cin,a); int zimu=0,shuzi=0,kongge=0,qita=0; for(int i=0;i!=a.size();i++) { if(a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z') zimu++; else if(a[i]>='0'&&a[i]<='9') shuzi++; else if(a[i]==' ') kongge++; else qita++; } cout<<zimu<<" "<<shuzi<<" "<<kongge<<" "<<qita; return 0; }
Description
观察下面的算式:
* * × * * = * * *
它表示:两个两位数字相乘,结果是3位数。其中的星号(*)代表任意的数字,可以相同,也可以不同,只要不是在首位的就可以是0。当然,满足这个要求的算式很多,但我们还有如下的要求:
所有星号所代表的数字全都是奇数。满足这个要求的算式就不多了。
比如:13 x 15 = 195
题目的任务是:编写程序,找到所有可能的情况。
Input
Output
输出的结果中,每个情况占用1行,不需要考虑不同情况如何排序问题。每行的格式如:
13 x 15 = 195
其中乘号用“x”表示。
#include <iostream> using namespace std; int main() { int a,a1,a2,b,b1,b2,n1,n2,result,result1,result2,result3; for(a=11;a<=99;a++) { n1=a; a1=n1/10; a2=n1-a1*10; for(b=11;b<=99;b++) { n2=b; b1=n2/10; b2=n2-b1*10; if(a1%2!=0&&a2%2!=0&&b1%2!=0&&b2%2!=0) { result=n1*n2; if(result/1000==0&&result/100!=0) { result1=result/100; result2=(result-result1*100)/10; result3=result-result2*10-result1*100; if(result1%2!=0&&result2%2!=0&&result%2!=0) cout<<n1<<" "<<"X"<<" "<<n2<<" "<<"="<<" "<<result<<endl; } } } } return 0; }
Description
30年的改革开放,给中国带来了翻天覆地的变化。2011全年中国手机产量约为11.72亿部。手机已经成为百姓的基本日用品!
给手机选个好听又好记的号码可能是许多人的心愿。但号源有限,只能辅以有偿选号的方法了。
这个程序的目的就是:根据给定的手机尾号(4位),按照一定的规则来打分。其规则如下:
1. 如果出现连号,不管升序还是降序,都加5分。例如:5678,4321都满足加分标准。
2. 前三个数字相同,或后三个数字相同,都加3分。例如:4888,6665,7777都满足加分的标准。注意:7777因为满足这条标准两次,所以这条规则给它加了6分。
3. 符合AABB或者ABAB模式的加1分。例如:2255,3939,7777都符合这个模式,所以都被加分。注意:7777因为满足这条标准两次,所以这条标准给它加了2分。
4. 含有:6,8,9中任何一个数字,每出现一次加1分。例如4326,6875,9918都符合加分标准。其中,6875被加2分;9918被加3分。
尾号最终得分就是每条标准的加分总和!
Input
第一行是一个整数n(<100),表示下边有多少输入行,接下来是n行4位一组的数据,就是等待计算加分的手机尾号。
Output
n行整数。
#include <iostream> using namespace std; int main() { int n,i,number; int a,b,c,d,sum=0; cin>>n; for(i=1;i<=n;i++) { cin>>number; a=number/1000; b=(number-1000*a)/100; c=(number-100*b-1000*a)/10; d=number-10*c-100*b-1000*a; if(a-b==-1&&b-c==-1&&c-d==-1) sum=sum+5; if(a-b==1&&b-c==1&&c-d==1) sum=sum+5; if(a==b&&b==c) sum=sum+3; if(b==c&&c==d) sum=sum+3; if(a==b&&c==d) sum=sum+1; if(a==c&&b==d) sum=sum+1; if(a==6||a==8||a==9) sum=sum+1; if(b==6||b==8||b==9) sum=sum+1; if(c==6||c==8||c==9) sum=sum+1; if(d==6||d==8||d==9) sum=sum+1; cout<<sum; sum=0; cout<<endl; } }