1.1题目描述
键盘输入正整数 n,求出n与其反序数x之和并输出。例如,输入2038,n+x = 2038 +8302 =10340,输出应为10340。要求:编写函数实现数据转换成反序数值。
1.2源代码
#include<iostream>
using namespace std;
int main()
{
int n, x, sum, m;
x = 0;
cin >> n;
m = n;
while (m != 0)
{
x = x * 10 + m % 10;
m = m / 10;
}
sum = x + n;
cout << sum;
return 0;
}
1.3运行截图
2.1题目描述
键盘输入正整数 n,求出n与其反序数x之和并输出。例如,输入2038,n+x = 2038 +8302 =10340,输出应为10340。要求:编写函数实现数据转换成反序数值
2.2源代码:
#include<iostream>
using namespace std;
void find(int i,int n);
int main()
{
int i,n;
cin>>i>>n;
find(i,n);
return 0;
}
void find(int i,int n)
{
int x,y,a=0;
for(x=i;a<n;x++)
{
for(y=2;y<=x;y++)
if(x%y==0)
break;
if(y>=x)
{
cout<<x<<" ";
a++;
}
}
}
2.3运行截图:
3.1题目描述
输入正整数start和end,找出从start到end这一区间段内哪一个数n的因子和最大,并将该n及其因子和maxSum作为结果输出。例如,当start=10,end=15时,所求的n应该为12,而maxSum应该为16。
3.2源代码
#include<iostream>
using namespace std;
int main()
{
int start, end, maxsum;
maxsum = 0;
cin >> start >> end;
int i, j, a, b;
for (i = start; i < end; i++)
{
a = 0;
for (j = 2; j < i; j++)
{
if (i%j == 0)
a = a + j;
}
if (a > maxsum)
{
maxsum = a + 1;
b = i;
}
}
cout << b << " " << maxsum;
return 0;
}
3.3运行截图
4.1题目描述
编写具有如下原型的函数symm:bool symm(long n); 用来判断正整数n是否为“回文数”(正读与反读为大小相同的数),若是返回true,否则返false。并编写主函数,通过调用symm,求出n以内所有满足下述特征的m:m和7*m以及3*m*m都是“回文数”,如1,11,88,…(因为m=1,7*m=7,3*m*m=3;m=11,7*m=77,3*m*m=363;m=88,7*m=616,3*m*m=23232;…)
4.2源代码
#include<iostream>
using namespace std;
bool symm (long n);
int main ()
{
int m,n;
cin>>n;
for (m=1;m<n;m++)
{
if (symm(m)&&symm(m*7)&&symm(m*m*3))
{
cout<<m<<" ";
}
}
return 0;
}
bool symm (long n)
{
int a,b,c;
a=n;
b=0;
while (a!=0)
{
c=a%10;
b=b*10+c;
a=a/10;
}
if (b==n)
return true;
else
return false;
}
4.3运行结果
5.1题目描述
编写具有如下原型的函数:bool f(long x);其功能为:若整数 x 仅由偶数字(0、2、4、6、8)组成时(如 x=26480),函数返回 true,否则返回 false(如当 x=22034 时)。并编制主函数对它进行调用。
5.2源代码
#include<iostream>
using namespace std;
int main()
{
bool f(long x);
long x;
cin>>x;
f(x);
return 0;
}
bool f(long x)
{
int m,n;
m=x;
do
{
n=m%2;
if(n==1)
break;
else
m=m/10;
}while(m>0);
if(m>0)
cout<<"false";
else
cout<<"true";
return 0;
}
5.3运行截图