【问题描述】
写一函数求sinh(x)的值,求sinh(x)的近似公式为:sinh(x)=(ex - e-x)/2,其中用一个函数求ex
【输入形式】
输入x值
【输出形式】
输出sinh(x)的值
【样例输入】
1
【样例输出】
1.1752
【样例输入】
2
【样例输出】
3.62686
#include<bits/stdc++.h>
using namespace std;
double s (double x)
{
double sum;
sum=(exp(x)-exp(-x))/2;
return sum;
}
int main()
{
double x;
cin>>x;
cout<<s(x)<<endl;
return 0;
}
【问题描述】
编写函数int sum(int x),求整数x的各位数字之和。
在main函数中测试该函数:从键盘输入一非负整数,然后调用sum函数计算各位数字之和并输出结果。
【输入形式】
输入一个正整数。
【输出形式】
输出该整数各位数字之和。
【样例输入】
58
【样例输出】
13
【样例说明】
输入整数58,其各位数字之和为:5+8 = 13。
#include<bits/stdc++.h>
using namespace std;
double sum(string a)
{
double sum=0;
int len=a.length();
for(int i=0;i<len;i++)
{
a[i]=a[i]-'0';
sum=sum+a[i];
}
return sum;
}
int main()
{
string a;
cin>>a;
cout<<sum(a)<<endl;
return 0;
}
【问题描述】
编写函数fac(n),用递归法求出n的阶乘.在程序中使用此函数,将输入的整数n的阶乘求出并输出到控制台.
【输入形式】
控制台输入整数n
【输出形式】
控制台输出n!
【样例输入】
5
【样例输出】
120
【样例说明】
5! = 120
递归解法
#include<bits/stdc++.h>
using namespace std;
int c (int x)
{
if(x==1)
{
return x;
}
else
{
return x*c(x-1);
}
}
int main()
{
int x;
cin>>x;
cout<<c(x)<<endl;
return 0;
}
迭代解法
#include<bits/stdc++.h>
using namespace std;
int c (int x)
{
int i=1;
int sum=1;
while(i<=x)
{
sum=sum*i;
i++;
}
return sum;
}
int main()
{
int x;
cin>>x;
cout<<c(x)<<endl;
return 0;
}
【问题描述】
编写一个函数invert(s),颠倒输入的字符串参数s后返回。在main()函数中测试此函数:从键盘输入一个正整数n(n∈[1,20]),然后再输入n个字符串(长度不大于100),对于每一个字符串,然后调用invert函数进行颠倒字符串操作,将颠倒后的字符串打印在屏幕上。
【输入形式】
从键盘输入整数n,然后再输入n个字符串,每行一个字符串。
【输出形式】
输出各个字符串颠倒以后的字符串,每个字符串之间用换行符隔开。
【输入样例】
3 1AdkflsddfYjkdfDD aaaaaaaaaaAAAAAAAAAA 12345678aBc
【输出样例】
DDfdkjYfddslfkdA1 AAAAAAAAAAaaaaaaaaaa cBa87654321
【样例说明】
因为输入n为3,故输入3个字符串。将字符串"1AdkflsddfYjkdfDD"首尾颠倒后的结果是"DDfdkjYfddslfkdA1";将字符串"aaaaaaaaaaAAAAAAAAAA"首尾颠倒后的结果是"AAAAAAAAAAaaaaaaaaaa";将字符串"12345678aBc"首尾颠倒后的结果是"cBa87654321";故输出:
DDfdkjYfddslfkdA1 AAAAAAAAAAaaaaaaaaaa cBa87654321
#include<bits/stdc++.h>
using namespace std;
void invert (string a)
{
int len=a.length();
for(int i=len-1;i>=0;i--)
{
cout<<a[i];
}
}
int main()
{
int n;
cin>>n;
string a[n];
for(int i=0;i<n;i++)
{
cin>>a[i];
}
for(int i=0;i<n;i++)
{
invert(a[i]);
if(i<n-1)
{
cout<<endl;
}
}
return 0;
}
【问题描述】
编写一个函数isprime(n).判断整数n是否为素数.编写程序使用此函数,当输入一个整数时,对它进行判断,当为素数时,输出1.否则,输出0.
【输入形式】
控制台输入一个整数.
【输出形式】
控制台输出判断结果0或者1.
【样例输入】
45
【样例输出】
0
【样例说明】
45非素数,故输出为0
#include<bits/stdc++.h>
using namespace std;
int check (int x)
{
if(x==1)
{
return 0;
}
for(int i=2;i*i<=x;i++)
{
if(x%i==0)
{
return 0;
}
}
return 1;
}
int main()
{
int x;
cin>>x;
cout<<check(x);
return 0;
}
【问题描述】
所谓"回文数"是指具有如下性质的整数:一个整数,当它的各位数字逆序排列,形成的整数与原整数相同,这样的数称为回文数。例如,素数11,373,其各位数字对换位置后仍然为11,373,因此这两个整数均为回文数。编写函数int loop(int x),判断一个整数是否为回文数,如果x是回文数则返回1,否则返回0。编写程序loop.c,接收控制台输入的两个整数a,b。调用loop函数输出a到b之间(包括a和b)的所有为偶数的回文数。
【输入形式】
控制台输入两个整数a和b(必有a<b),以空格分隔。
【输出形式】
输出有若干行,每行有一个a和b之间的回文数。输出各行上的数字不重复,且从小至大依次按序输出。
【样例输入】
3 120
【样例输出】
4 6 8 22 44 66 88
【样例说明】
输入整数a=3,b=120,要求输出所有[3, 120]之间的为偶数的回文数。按升序分行输出所有符合题意的整数。
#include<bits/stdc++.h>
#include<string>
using namespace std;
int loop (int x)
{
int temp=x,sum=0;
while(x)
{
sum=sum*10+x%10;
x=x/10;
}
if(temp==sum&&temp%2==0)
{
return 1;
}
else
{
return 0;
}
}
int main()
{
int x,y;
cin>>x>>y;
for(int i=x;i<=y;i++)
{
if(loop(i))
{
cout<<i<<endl;
}
}
return 0;
}
1430



被折叠的 条评论
为什么被折叠?



