随手附上一些代码,未必是最优解,仅供参考。
加密四位数
【问题描述】
输入一个四位数,将其加密后输出。方法是将该数每一位的数字加9,然后除以10取余作为该位上的新数字,最后将千位上的数字和十位上的数字互换,组成加密后的新四位数。 (顺序结构,不考虑特殊情况)
【样例输入】
1368
【样例输出】
5207
【样例说明】
1368的四位数字分别是1、3、6、8,对每个数字加9后对10求余的结果为0、2、5、7,交换千位和十位数字后为5、2、0、7,加密后的新四位数为5207
思路
逐个拆开数字,然后加上9再对10取余。
也可以不用像我写那么麻烦,合在一起一气呵成。
#include<iostream>
using namespace std;
int main()
{
int n,a,b,c,d;
cin>>n;
a=n%10;
n/=10;
b=n%10;
n/=10;
c=n%10;
n/=10;
d=n;
a=(a+9)%10;
b=(b+9)%10;
c=(c+9)%10;
d=(d+9)%10;
swap(b,d);
cout<<d<<c<<b<<a;
}
分段函数16
【问题描述】有一分段函数如下,请编写程序,输入x值,输出y值。
【样例输入1】
-5.5
【样例输出1】
-6.20789
【样例输入2】
0.5
【样例输出2】
1.91619
【样例输入3】
5.5
【样例输出3】
13.1757
思路
选择结构的考查,注意运算细节即可。
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
double x,y;
cin>>x;
if(x<-2) y=x-1/sqrt(1+2*sin(x)*sin(x));
else if(x<1) y=1+1/(x*x+sin(2*x));
else y=sqrt(abs(3-x*x*x))+cos(x*x);
cout<<y<<endl;
}
阶乘和数
【问题描述】<