有8个人组成一个朋友圈,其中各人对朋友有一个初始评分,分值越高说明该朋友在其心目中越重要。初始评分表如下(每行代表各人对其他人的评分):见图片
经过一段时间,各人对其中部分朋友的评分发生了改变。
赵:周4----周1,郑0---郑3
孙:李1---李5
吴:孙2---孙5,王6---王1
郑:李1---李3,吴2---吴6
王:吴3---吴1
===========================================================================
用所学数据结构实现如上朋友圈;
(1),用初始表初始化朋友圈;
(2),用所给数据更新朋友圈;
(3),当从键盘输入某人的汉语拼音时,按照其朋友的重要性(数值从小到大)打印其朋友圈(可以是汉语,也可以是汉语拼音)。
使用C或C++
不知道你这个问题是否已经解决, 如果还没有解决的话:输入一行一个正整数n。
输出第一行一个正整数,表示得到一个回文数的最少变换次数。
接下来一行,输出变换过程,相邻的数之间用"—>"连接。输出格式可以参见样例。
保证最后生成的数在int范围内。
349
3
349--->1292--->4213--->7337
#include <stdio.h>
#include <math.h>
int isPalindrome(int x) //如果传入的正整数是回文数则返回1,否则返回0
{
if (x < 0) return 0;
else if (x == 0) return 1;
else
{
int i = 0, j = 0, a[100] = { 0 };
while (x > 0)
{
a[i] = x % 10;
i++;
x = x / 10;
}
for (j = 0; j <= (i - 1) / 2; j++)
{
if (a[j] != a[i - 1 - j]) return 0;
}
return 1;
}
}
int fz(int x) //返回翻转后的正整数
{
int a[100] = { 0 }, i = 0, y = 0, j = 0;
while (x > 0)
{
a[i] = x % 10;
i++;
x = x / 10;
}
i--;
for (j = 0; j <= i; j++)
{
y += a[j] * pow(10, i - j);
}
return y;
}
int main(void)
{
int k = 0, i = 0, a[100] = { 0 }, j = 0;
scanf("%d", &k);
while (isPalindrome(k) == 0)
{
a[i] = k;
k += fz(k);
i++;
}
printf("%d\n", i);
for (j = 0; j < i; j++)
{
printf("%d--->", a[j]);
}
printf("%d", k);
return 0;
}