找数字

来源:互联网 发布:enum数据类型php 编辑:程序博客网 时间:2024/04/26 05:32
从键盘输入一个奇数p,其个位数字不是5,求一个整数S,使p*s=11....11。要求在屏幕上依次输出以下结果:(1)S的全部数字,(2)乘积的数字位数。


    例如,输入p=13,输出8547, 6


          输入p=147,.........,42

#include "stdio.h"#define N 1000int result[N],move[N];int find(int a[],int n,int index,int t){int i,temp;if(a[index]==-1){printf("一共有%d位1\n",index);for(i=N;result[i]==0;i--);for(;i>=0;i--)printf("%d",result[i]);}else{for(i=0;i<10;i++)if((a[index]+i*n)%10==1)break;result[t]=i; temp=i*n;for(i=index;;i++){if(a[i]==-1)a[i]=0;move[i+1]=(a[i]+(temp%10+move[i]))/10;a[i]=(a[i]+(temp%10+move[i]))%10;move[i]=0;temp/=10;if(temp==0)break;}if(a[i+1]==-1 && move[i+1]!=0)a[i+1]=0;if(move[i+1]!=0)a[i+1]=a[i+1]+(temp%10+move[i+1])%10;find(a,n,index+1,t+1);}return 0;}int main(){int i,temp,t=0;int a[N]={0};int n;int index=0;while(1){do{printf("please input a number:");scanf("%d",&n);}while(n%5==0 || n%2==0);temp=n;for(i=0;i<N;i++)a[i]=-1;a[0]=0;find(a,n,index,t);for(i=0;i<N;i++)result[i]=move[i]=0;}return 0;}


0 0
原创粉丝点击