1、
求:a+aa+aaa+aaaa+......
#include <stdio.h>
#include <stdlib.h>
/*
求:a+aa+aaa+aaaa+......
*/
int main()
{ int sn=0,tn=0,a=0,n=0;
int i;
printf("请输入参数:");
scanf("%d%d",&a,&n);
printf("输入参数:a=%d,n=%d\n",a,n);
for( i=1;i<=n;i++)
{
tn+=a;
sn+=tn;
tn*=10;
}
printf("a+aa+aaa+....=%d",sn);
return 0;
}
2 一共sumNum个人围成一个圈,从第fromNum个人中顺序查数,查到outNum出局,求最后胜利的人?
#include <stdio.h>
#include <stdlib.h>
/*
一共sumNum个人围成一个圈,从第fromNum个人中顺序查数,查到outNum出局,求最后胜利的人?,
*/
typedef struct
{
int data;
struct Lnode_t *next;//结构体指针指向下一个
}Lnode_t;
void FindDest(int sumNum,int fromNum,int outNum)
{
int i;
int allNum=sumNum;//记录人的总数
Lnode_t *p,*prev,*freeTemp;//当前指针,查找前驱,释放空间
Lnode_t *head=(Lnode_t*)malloc(sizeof(Lnode_t));//创建头结点
head->data=0;
head->next=head;//先头咬着头
p=head;
p->data=1;
p->next=p;
//初始化链表
for(i=2;i<=sumNum;i++)
{
Lnode_t *temp=(Lnode_t*)malloc(sizeof(Lnode_t));//临时结点
//后继结点指向前驱结点的小指针
temp->data=i;
temp->next=p->next;
p->next=temp;//使前驱结点指向后继结点
p=temp;//移动当前指针
}
//找到第fromNum个人
p=head;
for(i=1;i<fromNum;i++)
{
p=p->next;
}
prev=head;//用于查找出局人的
while(allNum!=1)
{
for(i=1;i<outNum;i++)//查数出局
{
p=p->next;
}
while(prev->next !=p)
{
prev=prev->next;
}
prev->next=p->next;//出局人的后继指针移交个前驱
freeTemp=p;
p=p->next;//让当前指针指向下一个结点
printf("出局人:%2d\n",freeTemp->data);
free(freeTemp);
allNum--;
}
printf("胜利人:%2d\n",p->data);
}
int main()
{
printf("Hello world!\n");
FindDest(23 ,3,4);
return 0;
}