一张无限大的纸折多少次与珠峰一样高 用c语言进行编程

一张无限大的纸折多少次与珠峰一样高 用c语言进行编程,第1张

假设纸的厚度为0104mm,珠峰取8848m

方法一:

用数学运算化简,本题化为不等式

  (2的x次方)0104/1000 > 8848

  则x > log(2为底)(88481000/0104)的对数的最小整数

  则C程序可以简化为:

  #include <stdioh>

  #include <mathh>

    int main() {

     double x = log10(88481000/0104)/log10(2);

     printf("%0f\n", ceil(x));  //输出次数

     return 0;

  }

  

  方法二:

  纯程序法,每折一次,都计算当前的高度,与8848做对比,>8848时,完成。

  #include <stdioh>

  int main() {

   int i = 0;

   double h=00f;

   while (h<88480) { //这里使用了while循环,也可以改用for, do  while等

      h = pow(2, ++i)0104/1000; //化为米

   }

   printf("%d\n", i);

   return 0;

  }

并不对

任何一种语言,都是有它自己用处的

basic是一门独立语言,不存在c语言简化版本的说法

事实上,basic一样可以实现很多功能,甚至独立完成一个大的程序

并不比C语言功能弱多少

#include<stdioh>

void main()

{

double a,b;

double result; //因为相除的结果不一定是整数

char op;

scanf("%f%f%c",&a,&b,&op);

switch (op)

{case '+': result=a+b;break;

case '-': result=a-b;break;

case '': result=ab;break;

case '/': result=a/b;break;

}

printf("%f%c%f=%f\n",a,op,b,result);

}

输入方法是: 3空格5+回车

显示: 3000000+5000000=8000000

本题有个难点,就是你若想输入 3,5, 最后3和5可以读给变量a和b,但是运算符一定会读成"逗号",因此必须按照我输入方法才正确。切记!!!!

main调用fun1,这时fun1中的a为11,、b为19,经过a+=a;b+=b;后,a为22、b为38,然后fun1调用fun2,fun2中的a为22、b为38,经过c=ab%3;后,c为2(836除以3得到的余数),fun2执行完毕,把2返回给fun1,2被赋给fun1的c,fun1执行完毕,返回22(即4)。

最后main接收fun1的返回值并将其输出

#include<stdioh>

#define max 100

int helix(int a,int b,int e,int f,int s[max][max])

{int i;

static int c=1;

for(i=1;i<=e;i++)

s[a++][b]=c++;

f--;

a--;

if(f!=0)

{

for(i=1;i<=f;i++)

s[a][++b]=c++;

e--;

if(e!=0)

{for(i=1;i<=e;i++)

s[--a][b]=c++;

f--;

if(f!=0)

for(i=1;i<=f;i++)

s[a][--b]=c++;

}

}

}

main()

{int m,n,x,y,i=1,j,c,t,s[max][max];

printf("please input the hang&lie number");

scanf("%d %d %d \n",&m,&n,&t);

x=m;

y=n;

while(1)

{ helix(i,i,x,y,s);

x=x-2;

y=y-2;

if(x<=0||y<=0)

break;

i++;

}

printf("\n");

if(t==0)

{for(i=1;i<=m;i++)

{for(j=1;j<=n;j++)

printf(" %d",s[i][j]);

printf("\n");

}

}

else

{for(i=1;i<=n;i++)

{for(j=1;j<=m;j++)

printf(" %d",s[j][i]);

printf("\n");

}

}

getch();

}

数字的逆序输出,自己尝试著编译看看

#include <stdioh>

#include <stdlibh>

#include <timeh>

main()

{

int a,b,c,d,result,i;

char f[]={'+','-','','/'};

while(1)

{

srand(time(NULL));

a=rand()%100;

b=rand()%100;

c=rand()%4;

switch (c)

{

case 0: d=a+b;break;

case 1: d=a-b;break;

case 2: d=ab;break;

case 3: d=a/b;break;

}

printf("输入结果:%d%c%d=",a,f[c],b);

i=0;

while (i<2)

{

scanf("%d",&result);

if (result==d&&i<2)

{printf("你答对了^_^\n"); break; }

else i++,printf("你答错了%d次:",i);

if (i==2) {printf("\n答案:%d\n",d);}

}

}

}

你每次乘以一个新的分式之后就进行约分,使你的分式始终保持最简形式,则就可以不需要大整数了。如果实在要用的话VC60也可以用64位的整数啊,不过它是用_int64表示(无需添加任何特殊头文件),输出格式则为printf(“%I64d", ); 例如

_int64 a = 98765432198765 2;

printf("%I64d", a);

不用大整数,程序则可如下做

#include <stdioh>

int gcd(int x, int y) {

int m, n;

m = ((x > y) x : y);

n = ((x <= y) x : y);

if(m % n == 0) return n;

else return gcd(n, m % n);

}

void main( )

{

int a, b, c, x, y, n, i;

scanf("%d", &n);

x = 1; y = 1;

for(i = 0; i < n; i++) {

scanf("%d%d", &a, &b);

x = a;

y = b;

c = gcd(x, y);

x /= c;

y /= c;

}

if(y != 1) printf("%d/%d\n", x, y);

else printf("%d\n", x);

}

以上就是关于一张无限大的纸折多少次与珠峰一样高 用c语言进行编程全部的内容,包括:一张无限大的纸折多少次与珠峰一样高 用c语言进行编程、basic语言是给入门人员用的c语言的简化版本,用来理解什么叫编程,所以永远写不了大程序、如何用c语言解决:编写一个简单的计算机程序,可以实现简单的加,减,乘,除运算。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9868110.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存