2-1位数
输入一个不超过10^9的正整数,输出他的位数,例如12735的位数是5.请不要使用任何数学函数,只用四则运算和循环语句实现
#include<iostream>
#include<cstdio>
#define uint unsigned int
using namespace std;
int main()
{
uint num;
cin >> num;
int i = 1;
for (; i <= 9; i++)
{
num /= 10;
if (num < 1)
break;
}
cout << i << endl;
return 0;
}
2-2水仙花数
输出100~999中的所有水仙花数。若3位数ABC满足ABC=A^3+B^3+C^3,则称其未水仙花数
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
int ge, shi, bai;
for (int i = 100; i <= 999; i++)
{
ge = i % 10;
bai = i / 100;
shi = bai * 10 - i / 10;
if (ge*ge*ge + bai*bai*bai + shi*shi*shi == i)
cout << i << endl;
}
return 0;
}
2-3韩信点兵
韩信带1500名兵士打仗,战死四五百人,站3人一排,多出2人;站5人一排,多出4人;站7人一排,多出6人。韩信马上说出人数:1049。
样例输入: 2 1 6
样例输出:41
样例输入:2 1 3
样例输出:No answer
#include<iostream>
#define uint unsigned int
using namespace std;
int main()
{
uint a, b, c;
while (scanf("%d%d%d", &a, &b, &c)!= EOF)
{
int i = 10;
for (; i <= 100; i++)
{
if (i % 3 == a&&i % 5 == b&&i % 7 == c)
{
cout << i << endl;
break;
}
}
if (i > 100)
cout << "No answer" << endl;
//printf("%d,%d,%d\n", a, b, c);
}
return 0;
}
2-4 倒三角形
输入正整数n<=20,输出一个N层倒三角形,例如n=5输出如下所示;
#include<iostream>
#define uint unsigned int
using namespace std;
int main()
{
int n;
int j=1;
cin >> n;
int a[21] = {0};
for (int i = 1; i <= 20; j += 2,i++)
{
a[i] = j;
}
for (int i = n; i >=1; i--)
{
for (int k = 1; k <= n-i; k++)
{
cout << " ";
}
for (int k = 1; k <= a[i]; k++)
{
cout << "#";
}
cout << endl;
}
return 0;
}