小记
1.找出所有各位数字之和为 15 的三位数, 并统计这样的三位数的个数
提示:设计一函数,判断一个三位数的各位数字之和是否为15,如果是,则返回1,否则返回 0
int main()
{
int i, j = 0;
for (i = 100; i < 1000; i++)
{
s(i);
j += s(i);
}
cout << "all=" << j<<endl;
}
int s(int i)
{
int j, k, l;
j = i % 10;
k = (i / 10) % 10;
l = i / 100;
if (l + j + k == 15)
{
cout << i << endl;
return 1;
}
else
return 0;
}
注意到main函数时执行了两次s函数,会重复输出!!! 因为s函数中已经cout
改进:
int main()
{
int i, j = 0;
for (i = 100; i < 1000; i++)
j += s(i);
cout << "all=" << j<<endl;
}
执行一次函数的同时j+1,搞定!
2.使用递归函数,把任意一个正整数颠倒过来输出
void reverse(int n)
{
if (n > 0)
{
cout << n % 10;
reverse(n / 10);
}
}
这又是一个自己写不出来的函数,卡在如何再次使用reverse函数那段