2018/11/27

198 阅读1分钟

小记

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函数那段