1、输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s;
getline(cin, s);
int num = 0, space = 0, word = 0, other = 0;
for (int i = 0; i < s.size(); i++)
{
if (s[i] >= '0' && s[i] <= '9')
{
num++;
}
else if (s[i] >= 'a' && s[i] <= 'z')
{
word++;
}
else if (s[i] == ' ')
{
space++;
}
else
{
other++;
}
}
cout << "英文字母的个数:" << word << endl
<< "空格的个数:" << space << endl
<< "数字的个数: " << num << endl
<< "其他字符的个数:" << other << endl;
system("pause");
return 0;
}
2、输出所有的水仙花数,所谓“水仙花数”是指一个3位数,其各位数字的立方之和等于该数本身。如153是水仙花数,因为153=13+53+33
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int j = 1;
for (int n = 100; n < 1000; n++)
{
int sum = 0, a, b, c;
a = n % 10;
b = n / 10 % 10;
c = n / 10 / 10 % 10;
sum += pow(a, 3) + pow(b, 3) + pow(c, 3);
if (sum == n)
{
cout << "第" << j++ << "个水仙花数为:" << n << endl;
}
}
system("pause");
return 0;
}
3、输入一个整数,将各位数字反转后生成一个反转的新数,并输出这个新数。
#include <iostream>
using namespace std;
int main()
{
cout << "please enter a number" << endl;
int n;
cin >> n;
int temp = 0;
while (n)
{
temp = temp * 10 + n % 10;
n /= 10;
}
cout << temp << endl;
system("pause");
return 0;
}
4、假设一张纸的厚度为0.5mm,每对折一次,厚度就增加一倍,编程计算对折多少次后,纸的厚度将超过珠穆朗玛峰的高度8848.13m?
#include <iostream>
using namespace std;
int main() {
double thickness = 0.0005;
double height = 8848.13;
int folds = 0;
while (thickness < height) {
thickness *= 2;
folds++;
}
cout << "需要对折 " << folds << " 次,纸张厚度才会超过珠穆朗玛峰的高度." << endl;
system("pause");
return 0;
}
5、编写程序,输出如下的数字金字塔
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n - i; j++)
cout << " ";
for (int k = 1; k <= i; k++)
cout << k;
for (int m = i - 1; m > 0; m--)
cout << m;
cout << endl;
}
system("pause");
return 0;
}
6、编写程序,求三角形的三边长在30以内(包括30)能够构成直角三角形的所有可能的情况(要求:把能够构成直角三角形的三个边长值输出)
#include <iostream>
#include <cmath>
using namespace std;
bool isRightTriangle(int a, int b, int c)
{
// 判断三边长是否能构成三角形
if (a + b <= c || a + c <= b || b + c <= a)
{
return false;
}
if (a * a + b * b == c * c)
{
return true;
}
return false;
}
int main()
{
cout << "三边长在30以内(包括30)能够构成直角三角形的情况如下:" << endl;
for (int a = 1; a <= 30; a++)
{
for (int b = a; b <= 30; b++)
{
for (int c = b + 1; c <= 30; c++)
{
if (isRightTriangle(a, b, c))
{
cout << a << " " << b << " " << c << endl;
}
}
}
}
system("pause");
return 0;
}