8道OJ平台题目及答案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
提交时,只需要提交conversion函数的定义代码即可。
#include <iostream>
using namespace std;
void conversion(int n); //将n转换为二进制输出的递归函数声明
int main()
{
int a;
cin>>a;
conversion(a) ; //将n转换为二进制输出
请在该部分补充缺少的代码
********************************/
cout<<"max="<<max<<endl;
cout<<"min="<<min<<endl;
return 0;
}
#include <iostream>
using namespace std;
int main()
if(b==1)boy++;
if(c==1)boy++;
if(d==1)boy++;
}else if(x>=11){
a=x/100;
b=(x-a*100)/10;
c=(x-a*100-b*10)/1;
if(a==1)boy++;
if(b==1)boy++;
if(c==1)boy++;
}else if(x>=1){
return 0;
}
#include <iostream>
using namespace std;
void conversion(int n); //将n转换为二进制输出的递归函数声明
int main()
{
int a;
cin>>a;
conversion(a) ; //将n转换为二进制输出
return 0;
if(b==1)boy++;
if(c==1)boy++;
if(d==1)boy++;
if(e==1)boy++;
}else if(x>=111){
a=x/1000;
b=(x-a*1000)/100;
c=(x-a*1000-b*100)/10;
d=(x-a*1000-b*100-c*10)/1;
if(a==1)boy++;
{
int c,sum=0;
for(i=1;i<=x/2;i++){
c=x%i;
if(c==0)sum+=i;
}
return sum;
}
6.
输入6名同学的性别,统计男同学的个数,用整数1表示男,整数0表示女。(无空格)
#include<iostream>
using namespace std;
int main()
using namespace std;
int main()
{
int a[10],i,max,min,*p;
p=a;
for(i=0; i<10; i++)
cin>>*p++;
max=min=a[0];
for(p=a; p<a+10; p++)
/*******************************
for(n=1;n<=b[i];n++)
{
sum=sum+fac(n);
}
cout<<sum<<endl;
sum=0;
}else{
break;
}
}
return 0;
}
long fac(int x) /////////////////////long型的
{
long c;
if(x==0||x==1)c=1;
}
cout<<sum<<endl;
sum=0;
return 0;
}
int fac(int x){
int c=0,i;
int pow(int x,int y);
for(i=0;i<=x;i++){
c+=pow(10,i); //////////////是pow(10,i)
}
return c;
}
int pow(int x,int y)//求次方
}else if(x>=1111){
a=x/10000;
b=(x-a*10000)/1000;
c=(x-a*10000-b*1000)/100;
d=(x-a*10000-b*1000-c*100)/10;
e=(x-a*10000-b*1000-c*1000-d*100)/1;
if(a==1)boy++;
for(i=1;i<=j/2;i++){
if(j%i==0){
num=num+i; //////////////////////////////重点
if(num==j)
cout<<i<<" "<<endl;
else
cout<<i<<" ";
}
}
num=0;
}
}
return 0;
}
int fac(int x)
5
一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数"。编程序找出N之内的所有完数,并按下面格式输出其因子:
1000
6 its factors are 1 2 3
28 its factors are 1 2 4 7 14
496 its factors are 1 2 4 8 16 31 62 124 248
#include <iostream>
#include <cmath>
using namespace std;
int i=1;
int main()
{
int fac(int);
int n,j,num=0;
cin>>n;
for(j=1;j<=n;j++){
if(fac(j)==j){
cout<<j<<" its factors are ";
a=x/10;
b=(x-a*10)/1;
if(a==1)boy++;
if(b==1)boy++;
}else if(x==0){
boy=boy;
}else{
boy=boy+1;
}Hale Waihona Puke Baidu
cout<<boy<<endl;
return 0;
}
7.
采用指针法,输出10个整型数中的最大值和最小值
#include <iostream>
cin>>a[i];
revert(a,N);
return 0;
}
void revert(int *a,int N) /*指针
{
int j;
for(j=N-1;j>=0;j--){
if(j!=0)cout<<a[j]<<" ";
if(j==0)cout<<a[j];
}
}
1.
求1!+2!+3!+4!+...+n!的结果。
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
long fac(int);
int b[50],i=0,n,sum=0;
while(cin>>b[i]){
if(b[i]>=1&&b[i]<=12){
{
int a[10],i,max,min,*p;
p=a;
for(i=0; i<10; i++)
cin>>*p++;
max=min=a[0];
for(p=a; p<a+10; p++){
if(*p>max)max=*p;
if(*p<min)min=*p;
}
cout<<"max="<<max<<endl;
{
int n=1,i;
for(i=0;i<y;i++){
n*=x;
}
return n;
}
3.
输入一个非负整数(十进制),调用递归函数输出此整数对应的二进制数。
函数声明如下:
void conversion(int n); //将n转换为二进制输出的递归函数声明
在以下程序的基础上,添加conversion函数的定义,使程序能够正确执行。
}
void conversion(int n)
{
int chu,yu;
chu=n/2;
yu=n%2;
if(chu>0){
conversion(chu);
cout<<yu;
}else{
cout<<n;
}
}
4.从键盘输入两个时间点(24小时制),输出两个时间点之间的时间间隔
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int a,b,c,d,e,f,g,h,i,sum1=0,sum2=0,sum3;
char w,x,y,z,m=':';
cin>>a>>w>>b>>x>>c;
cin>>d>>y>>e>>z>>f;
sum1=a*60*60+b*60+c;
cout<<"min="<<min<<endl;
return 0;
}
8.
输入10个数字,然后逆序输出。
#include<iostream>
using namespace std;
int main()
{
void revert(int *,int);
const int N=10;
int a[N],i;
for(i=0; i<N; i++)
int main()
{
int fac(int x);
int a,n,b[100],sum=0,i,j;
cin>>a>>n;
for(i=1;i<=n;i++){
//b[i]指b[1]=1,b[2]=11,b[3]=111???的
b[i]=a*fac(i-1);
}
for(j=1;j<=n;j++){
sum+=b[j];
sum2=d*60*60+e*60+f;
if(sum1>=sum2){
sum3=sum1-sum2;
g=sum3/3600;
h=(sum3-g*3600)/60;
i=sum3-g*3600-h*60;
}else{
sum3=sum2-sum1;
g=sum3/3600;
h=(sum3-g*3600)/60;
e=(x-a*100000-b*10000-c*1000-d*100)/10;
f=x-a*100000-b*10000-c*1000-d*100-e*10;
if(a==1)boy++;
if(b==1)boy++;
if(c==1)boy++;
if(d==1)boy++;
if(e==1)boy++;
if(f==1)boy++;
i=sum3-g*3600-h*60;
}
cout<<setiosflags(ios::right)<<setw(2)<<setfill('0')<<g<<m<<setw(2)<<setfill('0')<<h<<m<<setw(2)<<setfill('0')<<i<<endl;
return 0;
}
{
int x,a,b,c,d,e,f,boy=0;
cin>>x;
if(x<=111111&&x>=11111){
a=x/100000;
b=(x-a*100000)/10000;
c=(x-a*100000-b*10000)/1000;
d=(x-a*100000-b*10000-c*1000)/100;
else c=fac(x-1)*x;
return c;
}
2.
求Sn=a+aa+aaa+…+aa…aaa(有n个a)之值,其中a是一个数字(1<=a<=9)。例如:2+22+222+2222+22222(a=2,n=5),a和n由键盘输入。
#include <iostream>
using namespace std;
相关文档
最新文档