1. (编程题)下列乘法算式中:每个汉字代表1个数字(1~9)。相同的汉字代表相同的数字,不同的汉字代表不同的数字。
赛软件 * 比赛 = 软件比拼
赛软件 * 比赛 = 软件比拼
试编程确定使得整个算式成立的数字组合,如有多种情况,请给出所有可能的答案。
【参考结果】
465 * 14 = 6510
2. 有10个孩子站成一圈,从第一个孩子开始顺时针方向报数,报到3的人出列,下一个人继续从1报数,直到最后剩下一个孩子为止。问剩下第几个孩子。
3. 625这个数字很特别,625的平方等于390625,刚好其末3位是625本身。除了625,还有其它的3位数有这个特征吗?还有一个!该数是:_____________
4. 输入类是abcd的字符串,要求使用递归实现反转字符串,使输出结果为dcba
5. π值计算
我国古代数学家对圆周率方面的研究工作,成绩是突出的。三国时期的刘徽、南北朝时期的祖冲之都在这个领域取得过辉煌成绩。有了计算机,圆周率的计算变得十分容易了。如今,人们创造了上百种方法求π的值。其中比较常用且易于编程的是无穷级数法。
π/4=1-1/3+1/5-1/7+1/9-...
是初学者特别喜欢的一个级数形式,但其缺点是收敛太慢。
π/2=1+1/3+1/3*2/5+1/3*2/5*3/7+1/9+1/3*2/5*3/7+4/9+...
是收敛很快的一个级数方法。
请编程序用这两种方法计算π的值。
代码答案:
//1
#include "iostream"
using namespace std;
int main()
{
int s, r, j, b, p;
for (s = 1; s < 10; ++s)
for (r = 1; r < 10; ++r)
for (j = 0; j < 10; ++j)
for (b = 1; b < 10; ++b)
for (p = 0; p < 10; ++p)
{
if ((s*100 + r*10 + j)*(b*10 + s) == (r*1000 + j*100 + b*10 +p))
cout <<s<<r<<j<<"*"<<b<<s<<"="<<r<<j<<b<<p<< endl;
}
}
//2
#include "iostream"
using namespace std;
//定义结构体
struct Children
{
long num;
struct Children *next;
};
Children *head = NULL, *p, *q;
void get_num();//运用动态链表赋值
void find_num();//按要求输出
int main()
{
get_num();
find_num();
return 0;
}
void get_num()
{
for (int i = 1; i < 11; ++i)
{
p = new Children;
p->num = i;
p->next = NULL;
if (i == 1)
head = p;
else
q->next = p;
q = p;
}
q->next = head;
}
void find_num()
{
Children *p1, *p2;
int i = 2, turn = 0;//此处的i是p2->num对应的号码
p1 = head;
p2 = p1->next;
while(1)
{
if (i == 3)
{
cout << p2->num << endl;
p1->next = p2->next;
p2 = p2->next;
i = 1;
++turn;
}
else
{
p1 = p1->next;
p2 = p2->next;
++i;
}
if (turn == 10)
break;
}
}
//3
#include "iostream"
using namespace std;
int main()
{
int d_i;
for (int i = 101; i <= 999; ++i)
{
d_i = i*i;
if (d_i%1000 == i)
cout << i << endl;
}
return 0;
}
//4
#include "iostream"
using namespace std;
void turn(int);
char str[81];//储存一行字符
int main()
{
gets(str);
turn(0);
cout << endl;
return 0;
}
void turn(int i)
{
if (str[i] == '\0')
return;
else
turn(i+1);
cout << str[i];
return;
}
//5-1
#include <iostream>
using namespace std;
int main()
{
long double pi = 0, x = 1;
int sign = 1;
while(1/x > 0.00000001)
{
pi = pi + sign/x;
x = x + 2;
sign = -sign;
}
pi = 4*pi;
cout << pi << endl;
return 0;
}