文档详情

C语言作业3.doc

发布:2017-10-15约9千字共16页下载文档
文本预览下载声明
撞球 #include stdio.h #include math.h #include string.h int main() { double length,wide,x0,y0,x1,y1; int i; char towards[1500]; while(1) { memset(towards,0,sizeof(towards)); if(scanf(%lf %lf,wide,length)==EOF) break; scanf(%lf %lf,x0,y0); scanf(%lf %lf,x1,y1); scanf(%s,towards); for(i=0;istrlen(towards);i++) { if(towards[i]==F) y0=-y0; if(towards[i]==B) y0=2*length-y0; if(towards[i]==L) x0=-x0; if(towards[i]==R) x0=2*wide-x0; } printf(%.4lf\n,sqrt((x0-x1)*(x0-x1)+(y0-y1)*(y0-y1))); } return(0); } 20. 整数问题 成绩: 0 / 折扣: 0.8 请求输出满足以下条件的n位正整数的个数: 要求该n位整数的从高位开始前1位可以被1整除,该n位整数前2位可以被2*2整除,该整数前3位可以被3*3整除,该整数前4位可以被4*4整除……。即该整数前k位都可被k平方整除。 例如:n=1,则符合条件的1位正整数为1~9,输出答案9。n=2,符合条件的正整数为:12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60, 64, 68, 72, 76, 80, 84, 88, 92, 96,则输出答案22。当n=4时,2432就是一个符合题意的整数。第一位2可以被1整除;前2为24可以被4整除;前3位243可以被9整除;整个4位2432可以被16整除。 输入:   n(0=n9) 输出: ??? 符合该条件的n位正整数的数量 (本题目为软件学院2007年保研学生初试上机试题。本题可以不用数组) ? 测试输入 期待的输出 时间限制 内存限制 额外进程 测试用例 1 以文本方式显示 1? 以文本方式显示 9? 无限制 64M 0 测试用例 2 以文本方式显示 2? 以文本方式显示 22? 无限制 64M 0 测试用例 6 以文本方式显示 8? 以文本方式显示 0? 无限制 64M 0 思路一:做9个数组,第一个数组为1-9,从n=2开始,将上一组的每个数乘10加0-9,验算得到的数是否是n^2的整数倍,是则存入当前数组。完成后第n个数组的长度即是所求。 思路二:直接数完9组数据,做成映射表。 1,2,3,4,5,6,7,8,9共9个 12,16,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76,80,84,88,92共22个 126,162,207,243,288,324,360,369,405,441,486,522,567,603,648,684,720, 729,765,801,846,882,927,963共24个 1264,2432,2880,3248,3600,3696,4416,4864,6032,6480,6848,7200,7296,8016,8464,9632,共16个 24325,28800,36000,60325,64800,72000,96325,共7个 243252,288000,360000,603252,648000,720000,963252,共7个 6480005,共1个 n=8,9时个数为0 则建立数组a[9]={9,22,24,16,7,7,1,0,0},输入n则直接输出数组的第n个值即可 注意,如果数组计数从0开始,则输入n要输出a[n-1]#include stdio.h void main() {int n; n9; scanf(%d,n); {if(n==1) printf(9\n); } {if(n==2) printf(22\n); } {if(n==3) printf(24\n); } {if(n==4) printf(16\n); } {if((n==5)||(n==6)) printf(7\n); } {if(n==7) printf(1\n); } {if((n==8)||(n==0)) printf(0\n); }
显示全部
相似文档